2

特定のユーザーがコンピューターにログインしている時間を測定するアプリケーションを作成していたと想像してください(実際に作成しているアプリケーションは異なりますが、それは問題ではありません)。

ユーザーがいつログイン、ログアウトするか、いつコンピューターを一時停止するか([シャットダウン]メニューの[スタンバイ]を選択)、コンピューターがスリープから再開するタイミングを追跡する必要があります。

私はそのためSystemEventsに(具体的にはPowerModeChangedSessionSwitchイベントを)使用していますが、1つの例外を除いて、ほとんど機能します。

コンピュータが一時停止されている場合、PowerModeChangedイベントはモードで正しく発生しますSuspend

コンピュータが再開PowerModeChangedすると、モードで起動しますResume。ここまでは順調ですね。

その直後SessionSwitch、理由でイベントが発生しSessionLockます。しかし、履歴書の後で最終的にログインすると、はありませんSessionUnlock

この動作はWindowsXPで発生します。これは、XP、Vista、および7で正しく機能するために必要です。

このロック解除を受け取る方法はありますか?

4

1 に答える 1

3

私のハンドラーの 1 つで、キャッチされない例外があったことが判明しました。どうやら、これにより後続のイベントの起動が停止しました。

于 2011-08-10T16:40:19.460 に答える