特定のユーザーがコンピューターにログインしている時間を測定するアプリケーションを作成していたと想像してください(実際に作成しているアプリケーションは異なりますが、それは問題ではありません)。
ユーザーがいつログイン、ログアウトするか、いつコンピューターを一時停止するか([シャットダウン]メニューの[スタンバイ]を選択)、コンピューターがスリープから再開するタイミングを追跡する必要があります。
私はそのためSystemEventsに(具体的にはPowerModeChanged、SessionSwitchイベントを)使用していますが、1つの例外を除いて、ほとんど機能します。
コンピュータが一時停止されている場合、PowerModeChangedイベントはモードで正しく発生しますSuspend。
コンピュータが再開PowerModeChangedすると、モードで起動しますResume。ここまでは順調ですね。
その直後SessionSwitch、理由でイベントが発生しSessionLockます。しかし、履歴書の後で最終的にログインすると、はありませんSessionUnlock。
この動作はWindowsXPで発生します。これは、XP、Vista、および7で正しく機能するために必要です。
このロック解除を受け取る方法はありますか?