Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Applescript:通过gui脚本单击菜单栏项_Macos_Applescript - Fatal编程技术网

Macos Applescript:通过gui脚本单击菜单栏项

Macos Applescript:通过gui脚本单击菜单栏项,macos,applescript,Macos,Applescript,我正在尝试为一个名为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 m

我正在尝试为一个名为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
一切都可以正常编译,但在尝试运行脚本时,我不断收到以下错误消息:

错误“系统事件发生错误:无法获取进程“通量”菜单栏2菜单栏项目1的菜单1。索引无效。进程“通量”菜单栏项目2菜单栏项目1菜单1编号-1719


有人能指出我的错误在哪里吗?

这对我来说很有效,但在第一次单击命令后有大约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
    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

这不是一个标准的菜单项。@DanielA.White您是否认为没有通过applescript选择此特定选项的解决方案?我相信您不能使用GUI脚本与不属于系统的菜单栏额外功能(第三方菜单栏额外功能,如本功能)。别逼我这么做,但那是我的总体印象。你可能会想做一些进一步的研究。你有一个屏幕截图的UI浏览器屏幕阅读器是什么?@整个星期我相信它的UI浏览器从这个工作得很好。我喜欢你的网站,顺便说一句,似乎是一个很好的地方去感受applescript。我想+1,但我需要更多的rep。顺便问一下,有没有办法在脚本运行时隐藏gui操作?@BlackMilk没有。您正在编写gui脚本,因此无法隐藏它。需要看到它被执行。@BlackMilk您可以通过
do shell脚本“open-g applicationNamePath”
调用(甚至运行)应用程序来隐藏gui操作,然后告诉系统事件要做什么。GUI必须对系统“可见”,而不是对用户。因此,如果一个应用程序在后台,它将留在那里(“可读”),如果它新打开,它将在最前面的应用程序后面打开。当然,任何菜单点击都是可见的,尽管以毫秒为单位。(我偶尔会这样做一些“系统首选项设置”,速度非常快。)如果第二个脚本有问题,请在
killall System\\Events