9

我对 AppleScript 和系统事件有疑问。

我在“系统偏好设置”的“通用访问”偏好设置窗格中选中“启用辅助设备访问”。

当我尝试:

arch -i386 osascript -e '告诉应用程序“系统事件”获取每个进程的每个窗口的位置'

我有这个错误:

系统事件出现错误:辅助设备的访问被禁用。(-25211)

你有什么主意吗 ?

非常感谢

4

3 回答 3

13

在 Mac OS X 10.9 上,当AppleScript 编辑器不允许使用辅助功能时,您实际上会遇到相同的错误。

以下是启用它的方法:

转到系统偏好设置>安全和隐私>隐私>辅助功能

在此处输入图像描述

然后,只需选中AppleScript 编辑器左侧的复选框,错误就会消失。

于 2013-11-25T21:11:27.083 回答
8

问题不在于辅助设备。当 AppleScript 尝试访问一个永远不会有任何窗口的进程的窗口时,它似乎错误地返回了该错误代码(在我的情况下,它是“Google Chrome Helper”)。

您需要捕获错误。这对我有用:

tell application "System Events"
    set procs to processes
    set windowPositions to {}
    repeat with proc in procs
        try
            if exists (window 1 of proc) then
                repeat with w in windows of proc
                    copy w's position to the end of windowPositions
                end repeat
            end if
        end try -- ignore errors
    end repeat
end tell
return windowPositions

返回坐标对列表,例如 {{1067, 22}, {31, 466}, {27, 56}, {63, 22}, {987, 22}} - 这就是您想要得到的吗?

于 2012-04-13T12:24:11.097 回答
2

与此页面上关于 Mac OS X 10.9 (Mavericks) 的帖子类似,要在 Mac OS X 10.8(也可能在早期版本的 OS X 上)解决此问题,您需要确保“启用辅助设备的访问权限”选项已在系统偏好设置的辅助功能窗格中启用。

在此处输入图像描述

于 2014-02-01T20:24:05.967 回答