【发布时间】:2015-04-20 16:16:33
【问题描述】:
我有一个应用程序,它具有用于运行 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...
有什么想法吗?
【问题讨论】:
-
一个问题可能与“theApp”的脚本菜单实现有关。既然你没有透露 theApp 是什么,我假设它是你写的?当您从每个不同的位置启动时,该域是不同的,因此 UI 信息天生就会不同。尝试添加:告诉应用“theApp”激活行。
标签: user-interface scripting applescript osx-yosemite