在Windows XP系统locking/解锁时触发事件

请帮助我find一种方法来跟踪我的WinXP机器上的locking/解锁时间。 我试过Windows调度程序 – 它只logginglogin,而不是锁。 任何替代品?

在Miranda的源代码中,我看到了通过IdleObject跟踪器的实现,但是这种方式太长了。 可能是一个AutoIt脚本? 时间跟踪程序(免费)?

如果您有Windows服务,则可以通过OnSessionChange方法获取登录/注销/锁定/解锁事件的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中的 Windows XP解决了这个问题,它基本上监视Windows事件日志中的某个事件日志,以便根据您指定的标准触发事件。 由于它是一个日志监视器,它通常会在短暂的延迟后触发

例如,下面的代码将根据登录/注销相关事件调用带有参数的BAT文件(但不幸的是,这不仅仅是实际的用户登录/注销,还包括与系统相关的事件和计算机锁定事件)

 eventtriggers.exe /create /tr "logout_occured" /l SECURITY /eid 538 /tk "cmd /cc:\lockhandler.bat LOGOUT_OCCURED" eventtriggers.exe /create /tr "login_occured" /l SECURITY /eid 528 /tk "cmd /cc:\lockhandler.bat LOGIN_OCCURED"