为了在 OS X Lion 上启动屏幕保护程序,我使用了一个系统范围的键盘快捷键,它可以立即启动屏幕保护程序,使用一个简单的 applescript:
tell application "ScreenSaverEngine" to launch
尽管这在大多数情况下都可以完美运行,但是当鼠标恰好在调用脚本时移动时,我遇到了一个奇怪的问题。然后,ScreenSaverEngine.app 被加载并且桌面被锁定,但是 ScreenSaverEngine UI 没有出现。相反,桌面仍然可见,但无法将焦点设置在其他应用程序或 UI 控件上;桌面会话基本上被锁定。
“解锁”桌面的唯一方法是强制将焦点设置在 Activity Monitor 应用程序上(通过按住 Ctrl 键单击其停靠图标并选择 Show All Windows),然后终止 ScreenSaverEngine 进程。
通过从终端启动 ScreenSaverEngine 可以轻松重现相同的行为:
/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
并在按下 Enter 键的同时主动移动鼠标光标。
有谁知道一种可以用来以编程方式启动屏幕保护程序的方法,并且不会遇到这个问题?
注意:我知道还有其他选项可以锁定屏幕(快速用户切换、钥匙串锁定和热角),但我对这些解决方案不感兴趣,我需要一种以编程方式启动屏幕保护程序的方法。