快速切換使用者
當使用者登入計算機時,系統會載入其配置檔。 因為每個使用者都有唯一的用戶帳戶,這可讓多位用戶共享計算機。 當使用者登入時,他們看到的桌面設定、檔案、我的最愛和歷程記錄就是他們所看到的:其他用戶無法存取它們。 當使用者註銷時,他們的使用者資料會保留,以便下次登入時使用。 在較舊的作業系統中,一位使用者必須先註銷,然後其他使用者才能登入。 從 Windows XP 開始,使用者不需要註銷,就可以允許其他用戶登入。 相反地,多位使用者可以登入,並在其開放帳戶之間快速切換。 這項功能稱為 快速使用者切換。 切換至另一個帳戶並不會變更使用者目前正在執行的應用程式狀態。 例如,假設一位使用者在登入第一個使用者時,允許另一位使用者切換至其帳戶。 當第一個使用者切換回其帳戶時,其應用程式正在執行,並保留其網路連線。 因此,這兩個使用者似乎同時使用計算機。
如果您的應用程式符合 Windows 2000 標誌認證要求,這些應該能在 Windows XP 和更新版本的作業系統上使用者快速切換。 不過,在開發應用程式時,請務必記住此案例,使其如用戶預期般運作。 撰寫應用程式時,請使用下列指導方針:
- 實作真正的帳戶分隔。 系統提供基礎基礎結構,可支援分隔用戶數據、用戶設定和計算機設定。 例如,使用使用者的 Documents 資料夾來儲存使用者建立的數據。 若要尋找應用程式特定數據的目錄,請使用 已知資料夾 系統結合 FOLDERID_RoamingAppData,或者對於早期作業系統,使用 CSIDL 系統搭配 CSIDL_APPDATA。 將 FOLDERID_LocalAppData 或 CSIDL_LOCAL_APPDATA 用於其他計算機上使用者不應使用的資料,例如臨時檔。
- 註冊接收用戶切換通知。 一般而言,應用程式不需要在切換發生時收到通知。 不過,如果您的應用程式必須收到會話變更的通知,它可以註冊以接收 WM_WTSSESSION_CHANGE 訊息。
- 請注意應用程式的其他實例。 例如,有時候應用程式必須從因特網下載更新。 如果其他使用者在另一個會話中同時執行應用程式的實例,更新可能會失敗。 即使更新成功,更新仍會導致應用程式的其他執行中實例以無法預期的方式運作。 因此,只有在沒有執行應用程式的其他實例時,才最好執行動態升級。 下載應用程式更新之前,可能適合實作一個方法,以發出訊號給應用程式所有正在執行的實例,以儲存數據並正常退出。