在 mac os x 上检测用户活动

Nob*_*bik 1 c macos iokit user-activity

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

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

现在我的问题:

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

  2. 我如何检测用户当前是否在使用系统,因此守护程序不必将其置于睡眠模式???

谢谢诺比克

Nik*_*uhe 5

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