我想用我的应用程序重置系统空闲时间。 在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:
我还试图通过这个article(清单2)重置空闲时间,每个可能的参数都是kIOPMAssertionType。不幸的是没有成功..
再说一遍:我想在c#中找到一个解决方案,但我只是想看看用另一种语言是否可行。
答案 0 :(得分:1)
在OSX上,您也可以使用P / Invoke。要执行的函数名为UpdateSystemActivity。这是example。签名可能是:
[DllImport ("/System/Library/Frameworks/CoreServices.framework/CoreServices")]
private extern static void UpdateSystemActivity(byte activity);