【问题标题】:AppleScript - System Events Error : Access for assistive devices is disabledAppleScript - 系统事件错误:辅助设备的访问被禁用
【发布时间】:2012-04-25 18:55:11
【问题描述】:

AppleScript 和系统事件有问题。

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

当我尝试时:

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

我有这个错误:

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

你有什么想法吗?

非常感谢

【问题讨论】:

    标签: macos applescript


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      以下是启用它的方法:

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

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

      【讨论】:

      • 如果通过osascript 从命令行运行脚本,您还需要将终端添加到支持辅助功能的应用程序中。
      【解决方案3】:

      问题不在于辅助设备。当 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}} – 这就是您所尝试的得到?

      【讨论】:

      • 谢谢,我试试这个。最后一个问题,如何确定窗口是在dock中(隐藏)还是在前面?
      猜你喜欢
      • 2015-09-10
      • 1970-01-01
      • 2012-02-26
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      • 2013-07-23
      相关资源
      最近更新 更多