从2个不同的菜单访问Applescript会产生不同的结果。为什么?

时间:2015-04-20 16:16:34

标签: user-interface scripting applescript yosemite

我有一个应用程序,它有一个用于运行Applescripts的嵌入式脚本菜单。但是,如果您尝试运行具有某些功能(主要是UI相关)的脚本,除非您从系统脚本菜单(在菜单栏中)运行它们,否则它们将无法工作。

例如,如果在应用程序中你说:

tell application "System Events" to tell application process "theApp" to get all windows

如果从程序的脚本菜单运行,它将返回一个空列表,但如果从系统脚本菜单运行则返回2。我也试过了:

tell application "System Events"
    tell application process "theApp" 
        set allElements to UI elements
        display dialog (count of allElements)
    end tell
end tell
-- returns 2 when run from System script menu but 0 when run from within theApp.

此外,如果您从脚本编辑器运行它将正常工作。在“系统偏好设置”中为应用程序启用了GUI脚本,因此我很好奇为什么会发生这种情况,以及它的任何变通方法(除了从“系统脚本”菜单运行脚本之外)?字典显示标准套件,因此它应该可以访问Windows ...

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我相信您尚未使用辅助设备配置相关应用。

你应该真的打开系统偏好设置,然后点击“安全”按钮,然后解锁,然后点击辅助设备按钮(带有白人的蓝色图标),然后将你的应用程序拖到它上面(显示你的应用程序)从其Dock菜单中),并允许它控制你的机器,记得以后锁定窗格。

我不能保证这个工作,但这当然值得一试。