18

我正在尝试为名为 F.lux 的应用程序制作一个 AppleScript,该应用程序单击菜单项“禁用一小时”,如下面的屏幕截图所示:

在此处输入图像描述

元素路径如下面的截图所示:

在此处输入图像描述

到目前为止,这是我的代码:

tell application "System Events"
    tell process "Flux"
        click (menu bar item 1 of menu bar 2)
        click menu item "Disable for an hour" of menu 1 of menu bar item 1 of        
        menu bar 2
    end tell    
end tell

一切都编译得很好,但是当我尝试运行脚本时,我不断收到以下错误消息:

错误“系统事件出错:无法获取进程 \"Flux\" 的菜单栏 2 的菜单栏项目 1 的菜单 1。索引无效。” 来自进程“Flux”的菜单栏 2 的菜单栏项目 1 的菜单 1 的编号 -1719

有人可以指出我在哪里出错了吗?

4

1 回答 1

39

这对我有用,但在第一次单击命令后有大约 5 秒的延迟。

tell application "System Events" to tell process "Flux"
    tell menu bar item 1 of menu bar 2
        click
        click menu item "Disable for an hour" of menu 1
    end tell
end tell

一种解决方法是ignoring application responses在单击命令后使用和终止系统事件:

ignoring application responses
    tell application "System Events" to tell process "Flux"
        click menu bar item 1 of menu bar 2
    end tell
end ignoring
do shell script "killall System\\ Events"
delay 0.1
tell application "System Events" to tell process "Flux"
    tell menu bar item 1 of menu bar 2
        click menu item "Disable for an hour" of menu 1
    end tell
end tell
于 2013-05-11T13:22:45.693 回答