在AppleScript中选择一个菜单项,而不使用10.9小牛中的“系统事件”


15

我只是在回答另一个问题,使我想起了小牛队的一个新“功能”。

我曾经有很多small Automator Service,它们没有输入,但是在与按键绑定时做了一些有用的事情。完美的例子是将航站楼推到最前面的例子。其中一些要求在显示在最前面的应用程序中选择菜单项,例如Bring All to Front

现在看来,您需要为每个单个应用程序授予“可访问性”,以便在“服务”使用System EventsAppleScript库时可以使用通用按键。

有人知道解决办法吗?


2
必须为每个应用程序分别授权可访问性这一事实是荒谬的。他们需要非常类似于该Allow applications功能的设置。
l'l'l

1
好吧,他们需要一种授权“系统事件” AppleScript库的方法,该库可以发出命令,而不是在激活服务时运行的应用程序。但这太荒谬了。
托尼·威廉姆斯

Answers:


25

我不知道如何在不使用系统事件的情况下单击菜单项,但是如果其他人到这里来搜索如何在系统事件中单击菜单项:

tell application "System Events" to tell process "Finder"
    click menu item "New Finder Window" of menu 1 of menu bar item "File" of menu bar 1
end tell
tell application "System Events" to tell process "Finder"
    set frontmost to true
    click (menu item 1 where its name starts with "Compress") of menu 1 of menu bar item "File" of menu bar 1
end tell
tell application "System Events" to tell process "Finder"
    set frontmost to true
    tell menu bar item "File" of menu bar 1
        click
        click menu item "Open With" of menu 1
    end tell
end tell

通过将所有当前安装的应用程序拖到“系统偏好设置”中的列表中,可以允许它们使用可访问性API:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.