0

我想用我的应用程序重置系统空闲时间。在 Windows 上,我可以使用SendInput做到这一点。问题是我如何在 OSX 上做到这一点?

谢谢您的帮助!

编辑 1:
我也尝试了 UpdateSystemActivity,但没有成功,其中 IdleTime idleSeconds 会返回 HIDIdleTime。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{  
     while (true) {  
          NSLog(@"Idle seconds: %lu", (unsigned long)[[IdleTime sharedIdleTime] idleSeconds]);  
          [NSThread sleepForTimeInterval:1];  
     }  
});  
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{  
     while (true) {  
          dispatch_async(dispatch_get_main_queue(), ^{  
             UpdateSystemActivity(OverallAct);  
          });  
          [NSThread sleepForTimeInterval:5];  
     }  
});  

编辑 2:
我还尝试通过本文(清单 2)使用 kIOPMAssertionType 的每个可能参数重置空闲时间。不幸的是没有成功..
再次:我想要一个 c# 中的解决方案,但我只是想看看是否可以使用另一种语言。

4

1 回答 1

1

在 OSX 上,您也可以使用 P/Invoke。要执行的函数名为 UpdateSystemActivity。这是示例。签名可能是:

[DllImport ("/System/Library/Frameworks/CoreServices.framework/CoreServices")]
private extern static void UpdateSystemActivity(byte activity);
于 2013-10-29T11:43:36.820 回答