使用applescript将焦点设置到应用程序的特定窗口

时间:2013-02-08 13:47:09

标签: applescript

如何使用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。

1 个答案:

答案 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