这个AppleScript中的语法有什么问题?

时间:2017-01-21 05:48:17

标签: applescript

我开始研究一个涉及查看所有当前打开的窗口的脚本。我收到错误,我不明白为什么。

tell application "System Events"
    set theProcesses to application processes
    set allWindows to window of processes whose visible is true
    repeat with x from 1 to count allWindows
        set Pos to position of allWindows item x
    end repeat
end tell

如果我理解正确,allWindows就是一个列表。然而,当我尝试编译时,我得到错误"语法错误 - 预期的行结束但找到了类名。"错误指向行"将Pos设置为allWindows项x"的位置。我的代码出了什么问题?

更新:没关系,明白了!

1 个答案:

答案 0 :(得分:0)

您的脚本中存在一些问题,不仅是语法错误,还有不正确的理解。

1)对于语法,如前所述,你必须解决所有窗口的项目x'而不是所有Windows项目x'

2)变量allWindows包含一个列表,但每个元素都是一个项目列表。

示例{{window" imac27"申请流程" Finder"},{window"这个AppleScript中的语法出了什么问题? - Stack Overflow"申请流程" Safari"}}

在每个项目中,您都有该流程的窗口列表。然后,为了解决窗口本身问题,您必须解决所有窗口中项目X的项目y'

3)列表allWindows的项目x可能为空{}。该列表包含可见应用程序的所有窗口的列表。例如,Microsoft Excel可能正在运行,但没有打开文档。在这种情况下,Excel处理可见,但其窗口列表为{}。此外,进程可能会打开许多​​窗口。

在下面的脚本中,已经进行了更正,并且它遍历每个进程的所有窗口:

bunzip2 -f