我开始研究一个涉及查看所有当前打开的窗口的脚本。我收到错误,我不明白为什么。
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"的位置。我的代码出了什么问题?
更新:没关系,明白了!
答案 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