ワークステーションがロックされている時間を決定することは、ユーザー アクティビティの追跡、セキュリティ監査、システム パフォーマンスの監視などのさまざまなアプリケーションにとって重要です。 この記事では、C# の SessionSwitchEventHandler
を使用した堅牢な方法について詳しく説明します。
SessionSwitchEventHandler
を使用すると、アプリケーションはイベントのロックやロック解除などのシステム セッションの変更に応答できます。 次の C# コード スニペットはこれを示しています:
<code class="language-csharp">using Microsoft.Win32; // ... other code ... Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch); private DateTime lockedTime; private TimeSpan duration; void SystemEvents_SessionSwitch(object sender, Microsoft.Win32.SessionSwitchEventArgs e) { switch (e.Reason) { case SessionSwitchReason.SessionLock: lockedTime = DateTime.Now; break; case SessionSwitchReason.SessionUnlock: duration = DateTime.Now - lockedTime; // Process the duration value (e.g., log it, display it) break; } } // ... rest of your application code ...</code>
このコードは、SessionLock
および SessionUnlock
イベントをキャプチャするイベント ハンドラーを登録します。ロックすると現在時刻が保存されます。 ロックを解除すると、期間の計算が開始されます (現在時刻からロック時間を引いた値)。 この duration
TimeSpan オブジェクトは、データベースへのログ記録、ユーザーへの表示、他の監視システムへの統合など、さらなる処理に使用できます。 これにより、ワークステーションのロック期間の正確な記録が得られます。 これを他のシステム監視ツールと統合すると、ユーザーのアクティビティとシステム リソースの使用状況を総合的に把握できます。
以上がワークステーションがロックされている期間をプログラムで確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。