AppleScript:如何激活只使用选项向下键(w/o快捷键)显示的菜单项



我确实在这里和"AskDifferent"上查了很多问题,但找不到这个基本问题的有效答案:

如何通过程序"激活"只有在按下选项键时才可见的菜单项,而该菜单项没有自己的快捷方式
我知道如何使用:

click menu item "Save as …" ...  [or:]  perform action of menu item "..." ...

非常好
我还了解了以前设置的命令,如:

key down option    [or:]  keystroke "whatever" using option down

但是这些都不会对"定期"不可见的菜单项执行简单的点击


承认,使用现有的快捷方式,如"选项转换命令s"将按预期"另存为…":

keystroke "s" using {option down, shift down, command down}



(后来pbell证明我错了;所以这里是我最新的"简化"解决方案:

tell application "System Events" to perform action "AXPress" of menu item ¬
      "Arrange in front" of menu "Window" of menu bar item "Window" of ¬
      menu bar 1 of application process "Script Editor"

(正如我现在发现的,这段代码将做完全相同的事情。)

实际上,所有菜单项都可以通过系统事件/GUI脚本访问,即使它们不可见。不需要更改修改器关键帧。

这个代码就足够了。使应用程序位于最前面的行可以省略,因为即使应用程序不在前台,也可以访问菜单项。

tell application "System Events"
    tell process "Script Editor"
        set frontmost to true -- replaces 'activate application "Script Editor"'
        perform action "AXPress" of menu item "Arrange in front" of menu "Window" of menu bar item "Window" of menu bar 1
    end tell
end tell

您必须使用按键向下和按键向上的指令。贝娄的剧本符合你的要求。它显示了"脚本编辑器"(Script Editor)的菜单"窗口"(Window),选项键为向下。

tell application "System Events"
tell process "Script Editor"
    key down option
    click menu bar item 9 of menu bar 1 --using {option down}
    delay 2 -- just to show ! to be replaced by your click on your menu item
    key up option -- don't forget this : if you do, it keeps option down until you force to quit the process !!!
end tell    
end tell

我会使用这个:

activate application "Script Editor"
tell application "System Events"
    tell process "Script Editor"
        click menu item "Arrange in Front" of menu 1 of menu bar item "Window" of menu bar 1
    end tell
end tell

瓦迪恩的方法也是一种可以接受的方法。

最新更新