WinXP マシンでロック/ロック解除時間を追跡する方法を見つけるのを手伝ってください。Windowsスケジューラを試しました-ロックではなくログインのみをログに記録します。代替案はありますか?
Miranda のソース コードでは、IdleObject トラッカーによる実装を見ましたが、この方法では長すぎます。AutoItスクリプトでしょうか?時間追跡プログラム (フリーウェア)?
WinXP マシンでロック/ロック解除時間を追跡する方法を見つけるのを手伝ってください。Windowsスケジューラを試しました-ロックではなくログインのみをログに記録します。代替案はありますか?
Miranda のソース コードでは、IdleObject トラッカーによる実装を見ましたが、この方法では長すぎます。AutoItスクリプトでしょうか?時間追跡プログラム (フリーウェア)?
Windows サービスがある場合は、OnSessionChange
メソッドを介してログイン/ログアウト/ロック/ロック解除イベントの通知を取得できます。C# では、次のようにします。
protected override void OnSessionChange(SessionChangeDescription changeDescription)
{
switch (changeDescription.Reason)
{
case SessionChangeReason.SessionLogon:
//Logon
break;
case SessionChangeReason.SessionLogoff:
//Logoff
break;
case SessionChangeReason.RemoteConnect:
//Remote Connect
break;
case SessionChangeReason.RemoteDisconnect:
//Remote Disconnect
break;
case SessionChangeReason.SessionLock:
//lock
break;
case SessionChangeReason.SessionUnlock:
//Unlock
break;
default:
break;
}
}
私はeventtriggers.exeに組み込まれているWindowsXPを使用して問題を解決しました。これは、基本的にWindowsイベントログの1つを監視して変更を確認し、指定した基準に基づいて何かをトリガーできるようにします。ログモニターであるため、通常は少し遅れてトリガーされます
たとえば、ログイン/ログアウト関連のイベントに応じたパラメーターを使用してBATファイルを呼び出す次のコード(ただし、これは残念ながら、実際のユーザーのログイン/ログアウトだけでなく、システム関連のイベントやコンピューターのロックイベントでもあります)
eventtriggers.exe /create /tr "logout_occured" /l SECURITY /eid 538 /tk "cmd /c c:\lockhandler.bat LOGOUT_OCCURED"
eventtriggers.exe /create /tr "login_occured" /l SECURITY /eid 528 /tk "cmd /c c:\lockhandler.bat LOGIN_OCCURED"