macos – 如何检测应用程序(如Quicktime)是否阻止屏幕保护程序运行

macos – 如何检测应用程序(如Quicktime)是否阻止屏幕保护程序运行,第1张

概述当用户正在观看电影,运行幻灯片或执行机器处于活动状态但鼠标和键盘空闲的任何其他活动时,我想阻止我的应用程序执行某些 *** 作. 我知道每隔30秒调用一次UpdateSystemActivity()会阻止屏幕保护程序触发,但我感兴趣的是我们是否能够检测到屏幕保护程序是否被阻止运行. 它必须是App Store安全的 我的笔记说有一种方法可以使用未记录的类ScreenSaverController来完成此 *** 当用户正在观看电影,运行幻灯片或执行机器处于活动状态但鼠标和键盘空闲的任何其他活动时,我想阻止我的应用程序执行某些 *** 作.

我知道每隔30秒调用一次UpdateSystemActivity()会阻止屏幕保护程序触发,但我感兴趣的是我们是否能够检测到屏幕保护程序是否被阻止运行.

它必须是App Store安全的

解决方法 我的笔记说有一种方法可以使用未记录的类ScreenSaverController来完成此 *** 作.这是标题:

@interface ScreenSaverController : NSObject{    voID *_reserved;}+ (ID)controller;+ (ID)enginePath;- (ID)init;- (voID)dealloc;- (BOol)screenSaverIsRunning;- (BOol)screenSaverCanRun;- (voID)setScreenSaverCanRun:(BOol)arg1;- (voID)screenSaverStartNow;- (voID)screenSaverStopNow;- (voID)restartForUser:(ID)arg1;- (double)screenSaverTimeRemaining;- (BOol)screenSaverIsRunningInBackground;- (voID)screenSaverDIDFadeInBackground:(BOol)arg1        psnHi:(unsigned int)arg2        psnLow:(unsigned int)arg3;@end

以下是如何使用它:

ScreenSaverController *ssc = [ScreenSaverController controller];if ([ssc screenSaverCanRun]) { ... }[ssc release];

请注意,您需要链接ScreenSaver框架才能使用它.由于这是一个未记录的类,因此这样做会使您的应用程序不符合Mac App Store的条件.

另外看一下screenSaverTimeRemaining – 一些防止屏幕保护程序启动的方法可能只是不断重置它.

总结

以上是内存溢出为你收集整理的macos – 如何检测应用程序(如Quicktime)是否阻止屏幕保护程序运行全部内容,希望文章能够帮你解决macos – 如何检测应用程序(如Quicktime)是否阻止屏幕保护程序运行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1071725.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存