如何使用applescript将焦点设置到给定应用程序的特定窗口?
我在不同的显示器上运行了几个iTerm2窗口。我想使用applescript将焦点设置到指定的窗口。
我需要两件事,一个收集窗口ID的脚本并将它们打印到stdout。我有这个:
tell application "iTerm"
set wins to id of every window
end tell
打印6个整数:3034,2528,-1,-1,-1,-1
奖金问题:四个-1是什么?
然后我尝试:
tell application "System Events"
activate window 3034
end tell
唯一发生的事情就是我失去了当前终端的焦点(我正在输入这些命令),无论我是指定3034还是2528作为ID。
答案 0 :(得分:3)
你几乎拥有它。您只需查看可见窗口即可过滤掉“-1”窗口ID:
tell application "iTerm 2"
set wins to id of every window whose visible is true
end tell
我通过查看以下结果来解决这个问题:
tell application "iTerm 2" to properties of every window
我注意到“-1”窗口具有属性visible:false
然后您可以直接将窗口ID告知iTerm应用程序而不是系统事件:
tell application "iTerm 2"
activate window 13195
end tell