1

我使用函数“IOPMSchedulePowerEvent”来安排睡眠或唤醒事件,并使用“IORegisterForSystemPower”注册我的守护程序以接收电源状态更改。一切正常!

当系统进入睡眠状态并在预定时间醒来时,我的守护进程会做一些工作,之后系统应该再次进入睡眠状态。

现在我的问题:

  1. 我如何检测系统是由用户唤醒还是在预定时间唤醒?

  2. 如果用户当前正在使用系统,我如何检测,所以守护进程不必将其置于睡眠模式???

谢谢诺比克

4

1 回答 1

5

有一种简单的方法可以检测各种形式的用户交互:使用CGEventSourceCounterForEventType您可以查询自启动时间以来键盘按下或鼠标移动的次数。通过定期执行此操作并比较计数,您可以检测交互。

于 2010-05-27T18:09:36.403 回答