我正在寻找一种方法来执行我的应用程序(它是一个后台任务),有时机器处于“空闲”状态。一个很好的事件是屏幕保护程序启动时。我已经阅读了手册 auf launchd 并且已经使用 LaunchAgent 以一定的时间间隔启动我的应用程序,但是我发现没有任何东西可以帮助我在屏幕保护程序处于活动状态时启动我的应用程序。
有没有可能这样做?
提前致谢!
乔什
我正在寻找一种方法来执行我的应用程序(它是一个后台任务),有时机器处于“空闲”状态。一个很好的事件是屏幕保护程序启动时。我已经阅读了手册 auf launchd 并且已经使用 LaunchAgent 以一定的时间间隔启动我的应用程序,但是我发现没有任何东西可以帮助我在屏幕保护程序处于活动状态时启动我的应用程序。
有没有可能这样做?
提前致谢!
乔什
让另一个进程在后台运行并侦听名为com.apple.screenIsLocked
and的分布式通知com.apple.screenIsUnlocked
。(这适用于 Snow Leopard。Leopard 使用了不同的通知名称。使用Notification Watcher和实验来找出它们是什么。)当其中一个通知出现时,启动或很好地退出*您的真实应用程序,视情况而定。
*您需要为此使用 Apple 活动。
对于 Snow Leopard,screenIsLocked 和 screenIsUnlocked 通知不再可用。我成功使用的是这些:
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(locked:) name:NSWorkspaceScreensDidSleepNotification object:nil];
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(unlocked:) name:NSWorkspaceScreensDidWakeNotification object:nil];
我是新用户,所以我不能评论或投票支持 portenkirchner 的建议。Matt Swann 移动了他的ScriptSaver。
它完全符合我的要求,在我解锁屏幕保护程序时运行 AppleScript 程序。
您可以使用 Matt Swann 的 ScriptSaver。这是一个 Mac OS X 屏幕保护程序,它可以在激活和停用时运行 AppleScripts。