检测mac os x上的用户活动

问题描述 投票:1回答:1

我使用函数“IOPMSchedulePowerEvent”来安排Sleep或Wake-Events,并使用“IORegisterForSystemPower”注册我的守护进程以接收电源状态更改。一切正常!

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

现在我的问题:

  1. 如果系统被用户或预定时间唤醒,我如何检测?
  2. 如果用户当前正在使用系统,如何检测守护进程是否已将其置于睡眠模式?

谢谢Nobik

c macos iokit user-activity
1个回答
4
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.