8

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

我有几个 iTerm2 窗口在不同的显示器上运行。我想使用 applescript 将焦点设置到指定的窗口。

我需要两件事,一个收集窗口 ID 并将它们打印到标准输出的脚本。我有这个:

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。

4

1 回答 1

2

你几乎拥有它。您可以通过仅查看可见窗口来过滤掉“-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
于 2013-02-26T23:33:10.923 回答