ユーザーの簡易切り替え
ユーザーがコンピューターにログオンすると、システムはそのプロファイルを読み込みます。 各ユーザーには一意のユーザー アカウントがあるため、これにより、複数のユーザーが 1 台のコンピューターを共有できます。 あるユーザーがログオンすると、そのユーザーのデスクトップ設定、ファイル、お気に入り、履歴が表示されます。他のユーザーはアクセスできません。 そのユーザーがログオフすると、プロファイルは次回のログオン時まで保持されます。 以前のオペレーティング システムでは、別のユーザーがログオンする前に、現在のユーザーがログオフする必要がありました。 Windows XP 以降では、別のユーザーがログオンできるようにするために、現在のユーザーがログオフする必要はありません。 代わりに、複数のユーザーがログオンし、開いているアカウント間をすばやく切り替えることができます。 この機能は、"ユーザーの簡易切り替え" と呼ばれます。 別のアカウントに切り替えても、ユーザーが現在実行しているアプリケーションの状態は変わりません。 たとえば、あるユーザーが、自分がログオンしている間に、別のユーザーにアカウントの切り替えを許可するとします。 最初のユーザーが自分のアカウントに戻ると、アプリケーションは実行されていて、ネットワーク接続が保持されています。 したがって、両方のユーザーが同時にそのコンピューターを使っているように見えます。
アプリケーションが Windows 2000 ロゴの要件に準拠している場合は、Windows XP 以降のオペレーティング システムでのユーザーの簡易切り替えで動作する必要があります。 ただし、アプリケーションを開発するときは、ユーザーが期待するとおりに動作するよう、このシナリオに留意することが重要です。 アプリケーションを作成するときは、次のガイドラインを使用します。
- プロファイルの真の分離を実装します。 システムは、ユーザー データ、ユーザー設定、コンピューター設定の分離をサポートする基盤となるインフラストラクチャを提供します。 たとえば、ユーザーの [ドキュメント] フォルダーを使って、ユーザーが作成したデータを格納します。 アプリケーション固有のデータ用のディレクトリを検索するには、既知のフォルダー システムと FOLDERID_RoamingAppData を使うか、古いオペレーティング システムの場合は、CSIDL システムと CSIDL_APPDATA を使います。 一時ファイルなど、他のコンピューター上のユーザーが使用できてはならないデータの場合は、FOLDERID_LocalAppData または CSIDL_LOCAL_APPDATA を使います。
- ユーザー切り替えの通知に登録します。 通常は、切り替えが発生しても、アプリケーションで通知を受け取る必要はありません。 ただし、アプリケーションでセッション変更の通知を受け取る必要がある場合は、WM_WTSStandard EditionSSION_CHANGE メッセージの受信に登録できます。
- アプリケーションの他のインスタンスに注意します。 たとえば、アプリケーションでインターネットから更新プログラムをダウンロードすることが必要な場合があります。 別のユーザーが別のセッションでそのアプリケーションのインスタンスを同時に実行している場合、更新が失敗する可能性があります。 更新が成功した場合でも、アプリケーションの他の実行中のインスタンスが更新のために予期しない動作を示す可能性があります。 したがって、アプリケーションの他のインスタンスが実行されていない場合にのみ、動的アップグレードを実行するのが最善です。 アプリケーションの更新プログラムをダウンロードする前にアプリケーションのすべての実行中のインスタンスにデータを保存してクリーンに終了するよう通知する方法を実装するのが適切な場合があります。