SystemEvents并从睡眠状态恢复

时间:2011-08-10 16:23:42

标签: .net session suspend systemevent

想象一下,我正在创建一个应用程序,用于衡量某个用户登录计算机的时间长度(我写的实际应用程序不同,但这无关紧要。)

我需要跟踪用户何时登录,注销,何时暂停计算机(“关机”菜单中的“待机”选项)以及计算机何时从睡眠状态恢复。

我正在使用SystemEvents(具体而言,PowerModeChangedSessionSwitch事件)并且它主要起作用,但有一个例外:

当计算机被暂停时,PowerModeChanged事件会以模式Suspend正确引发。

当计算机恢复时,PowerModeChanged会以模式Resume引发。到目前为止一切都很好。

在此之后,SessionSwitch事件被引发,原因为SessionLock。但是当我最终在简历后登录时,没有SessionUnlock

这种行为发生在Windows XP上,我需要在XP,Vista和7上正常工作。

有没有办法如何获得此解锁?

1 个答案:

答案 0 :(得分:3)

原来我的一个处理程序中有一个未被捕获的异常。显然,这阻止了随后发生的事件。