如何在 C# 中发送用户输入以重置系统空闲时间
本文关键字:系统 时间 输入 用户 | 更新日期: 2023-09-27 18:36:40
我想用我的应用程序重置系统空闲时间。在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# 的解决方案,但我只是想看看另一种语言是否可行。
在OSX上,你也可以使用P/Invoke。要执行的函数名为 UpdateSystemActivity。下面是示例。签名可能是:
[DllImport ("/System/Library/Frameworks/CoreServices.framework/CoreServices")]
private extern static void UpdateSystemActivity(byte activity);