3

現在 Windows にログオンしているユーザーが複数いるとします。たとえば、user1ログオンしてからswitch userログオンします (ログオフuser2せずに)。user1ユーザーがログオンしたときに実行されるアプリがあるとします。2 人のユーザーがアクティブ ユーザーuser1としてuser2ログオンしており、user22 つのアプリがあります。

私の質問は次のとおりです。アプリは、対応するユーザーがアクティブかどうかをどのように認識しますか? つまり、ドメイン内のアプリはuser2そのユーザーがアクティブであると判断し、user1ドメイン内のアプリはそのユーザーが現在非アクティブであると判断します。ありがとう!

4

2 に答える 2

4

呼び出しWTSGetActiveConsoleSessionIdて、物理コンソールで現在アクティブなターミナル サービス (別名「高速ユーザー切り替え」別名「リモート デスクトップ」) セッション ID を取得できます。

セッション ID とWTSQuerySessionInformationforを呼び出して、現在のプロセスのターミナル サービス セッション ID を取得できます。WTS_CURRENT_SESSIONWTSSessionIdWTSInfoClass

アクティブなセッション ID と現在のプロセスのセッション ID が同じ場合、現在のプロセスに対応するユーザーは、物理コンソールでアクティブなセッションを持っています。

現在のプロセスが実行されているセッションがアクティブであるかどうかを知りたい場合 (ただし、必ずしも物理コンソール上である必要はありません)、代わりに へのWTSConnectStateオプションを使用できますWTSQuerySessionInformation

于 2013-01-14T20:46:58.940 に答える