2010-05-27 73 views
1

我使用函数“IOPMSchedulePowerEvent”来安排睡眠或唤醒事件,并使用“IORegisterForSystemPower”注册我的守护程序以接收电源状态更改。一切正常!当系统进入休眠状态,并在预定的时间后来唤醒时,我的守护进程会做一些工作,并且在系统重新启动之后。在mac os上检测用户活动x

现在我的问题:

  1. 我如何检测,如果系统是由用户或在预定的时间醒?

  2. 我该如何检测,如果一个用户目前正在使用该系统,所以守护进程没有把它放在睡眠模式?

感谢 Nobik

回答

3

有一个简单的方法来检测各种形式的用户交互:采用CGEventSourceCounterForEventType可以查询键盘按压或鼠标移动的数量,因为开机时间。通过定期执行此操作并比较计数,您可以检测交互。

+0

这是一个好主意,谢谢,但我正在寻找一个更简单的方法来做到这一点。 Windows为我提供“IsSystemResumeAutomatic-Function”,以获取信息。是否有一个可比的Mac功能? – Nobik 2010-05-28 08:59:39