检测用户当前是否在其计算机上(即以某种方式使用它)的最佳方法是什么。我们有一个应用程序,仅当用户在计算机前时才发出通知(带有关闭按钮的横幅通知)。
例如,想象一个股票交易应用程序,它提醒用户各种可能只与几分钟相关的时间敏感信息。如果用户离开计算机,他们不想找到 20 个未执行的警报来消除。
如果链接到 ApplicationServices 或更高版本,请尝试:
CFTimeInterval idleTime = CGEventSourceSecondsSinceLastEventType(kCGEventSourceStateCombinedSessionState, kCGAnyInputEventType);
事件源自上次事件以来的时间。
kCGAnyInputEventType eventType 将报告任何输入事件、键盘、鼠标或平板电脑的最后时间戳。各种系统和应用程序定义的事件不会影响此事件类型的时间。
同样,从登录会话内发布的程序或应用程序应使用 kCGEventSourceStateCombinedSessionState。
解释硬件状态并生成事件的用户空间设备驱动程序应使用 kCGEventSourceStateHIDSystemState。
CG_EXTERN CFTimeInterval CGEventSourceSecondsSinceLastEventType( CGEventSourceStateID source, CGEventType eventType ) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)