如何使用AppleScript以编程方式关闭仪表板?

时间:2013-04-01 13:07:04

标签: javascript applescript

我正在开发一个小型仪表板小部件,允许用户打开系统首选项窗格。

打开偏好设置面板没问题(但看起来很糟糕:p)

widget.system('osascript ' +
              '-e \'tell app "system preferences" to activate\'' +
              '-e \'<snip…> open correct pane\'')

问题是,即使首选项窗格打开,仪表板也会保持打开状态。

我找到了打开它的方法:

tell app "Dashboard" to launch

但无法关闭close会引发异常而quit无效:/

有谁知道怎么做?

2 个答案:

答案 0 :(得分:2)

尝试:

tell application "Dashboard" to launch
delay 3
tell application "Finder" to activate

或者是按键...

tell application "System Events" to key code 53

答案 1 :(得分:0)

虽然发送密钥代码111对我有用,但是当它打开和关闭仪表板时,它实际上并不允许你控制状态。有时您希望能够关闭仪表板,但如果它已经关闭,您不希望将其重新打开(密钥代码111将执行此操作)。

而是使用密钥代码27或ESCAPE:

tell application "System Events" to key code 27

如果仪表板处于打开状态,它将关闭仪表板,但如果它已经关闭则不应该执行任何操作。

我在已连接到电视的Mac上定期使用此技术,以便通过关闭仪表板并重新打开它来刷新仪表板小部件。

tell application "System Events" to key code 27
delay 3
tell application "Dashboard" to launch