想象一下,我正在创建一个应用程序,用于衡量某个用户登录计算机的时间长度(我写的实际应用程序不同,但这无关紧要。)
我需要跟踪用户何时登录,注销,何时暂停计算机(“关机”菜单中的“待机”选项)以及计算机何时从睡眠状态恢复。
我正在使用SystemEvents
(具体而言,PowerModeChanged
和SessionSwitch
事件)并且它主要起作用,但有一个例外:
当计算机被暂停时,PowerModeChanged
事件会以模式Suspend
正确引发。
当计算机恢复时,PowerModeChanged
会以模式Resume
引发。到目前为止一切都很好。
在此之后,SessionSwitch
事件被引发,原因为SessionLock
。但是当我最终在简历后登录时,没有SessionUnlock
。
这种行为发生在Windows XP上,我需要在XP,Vista和7上正常工作。
有没有办法如何获得此解锁?
答案 0 :(得分:3)
原来我的一个处理程序中有一个未被捕获的异常。显然,这阻止了随后发生的事件。