如何在C#中发送用户输入重置系统空闲时间?

时间:2013-10-24 14:29:54

标签: c# macos mono

我想用我的应用程序重置系统空闲时间。 在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#中找到一个解决方案,但我只是想看看用另一种语言是否可行。

1 个答案:

答案 0 :(得分:1)

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

[DllImport ("/System/Library/Frameworks/CoreServices.framework/CoreServices")]
private extern static void UpdateSystemActivity(byte activity);
相关问题