Jac*_*cob 5 macos xcode cocoa osx-mountain-lion
什么是检测用户当前是否在他们的计算机上的最佳方式,即以某种方式使用它.如果用户在他们的计算机上,我们有一个应该只发出通知(带有关闭按钮的横幅通知)的应用程序.
例如,假设一个股票交易应用程序向用户发出可能仅与几分钟相关的各种时间敏感信息.如果用户远离他们的计算机,他们不希望找到20个未采取行动的警报来解雇.
如果链接ApplicationServices或更高版本,请尝试:
CFTimeInterval idleTime = CGEventSourceSecondsSinceLastEventType(kCGEventSourceStateCombinedSessionState, kCGAnyInputEventType);
Run Code Online (Sandbox Code Playgroud)
自上次事件源以来的时间.
kCGAnyInputEventType eventType将报告任何输入事件,键盘,鼠标或平板电脑的最后时间戳.各种系统和应用程序定义的事件不会影响此事件类型的时间.
同样,在登录会话中发布的程序或应用程序应使用kCGEventSourceStateCombinedSessionState.
解释硬件状态和生成事件的用户空间设备驱动程序应使用kCGEventSourceStateHIDSystemState.
CG_EXTERN CFTimeInterval CGEventSourceSecondsSinceLastEventType(CGEventSourceStateID source,CGEventType eventType)AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;