1

WinXP マシンでロック/ロック解除時間を追跡する方法を見つけるのを手伝ってください。Windowsスケジューラを試しました-ロックではなくログインのみをログに記録します。代替案はありますか?

Miranda のソース コードでは、IdleObject トラッカーによる実装を見ましたが、この方法では長すぎます。AutoItスクリプトでしょうか?時間追跡プログラム (フリーウェア)?

4

3 に答える 3

1

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;
        }
 }
于 2010-09-28T12:02:10.027 に答える
0

私は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"
于 2012-10-05T15:22:08.817 に答える