使用applescript将焦点设置为应用程序的特定窗口
如何使用applescript将焦点设置到给定应用程序的特定窗口 我有几个iTerm2窗口在不同的显示器上运行。我想使用applescript将焦点设置为指定的窗口 我需要两件事,一个脚本收集窗口ID并将它们打印到标准输出。我有这个:使用applescript将焦点设置为应用程序的特定窗口,applescript,Applescript,如何使用applescript将焦点设置到给定应用程序的特定窗口 我有几个iTerm2窗口在不同的显示器上运行。我想使用applescript将焦点设置为指定的窗口 我需要两件事,一个脚本收集窗口ID并将它们打印到标准输出。我有这个: tell application "iTerm" set wins to id of every window end tell 它输出6个整数:30342528,-1,-1,-1 奖金问题:什么是4-1 然后我尝试: tell application "S
tell application "iTerm"
set wins to id of every window
end tell
它输出6个整数:30342528,-1,-1,-1
奖金问题:什么是4-1
然后我尝试:
tell application "System Events"
activate window 3034
end tell
唯一发生的事情是,我失去了当前终端的焦点(我正在其中键入这些命令),不管我是将3034还是2528指定为ID。您几乎拥有了它。通过仅查看可见窗口,可以筛选出“-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”窗口的属性可见:false
然后,您可以直接将窗口ID告知iTerm应用程序,而不是系统事件:
tell application "iTerm 2"
activate window 13195
end tell
退房如果将某个窗口的
执行操作“AXRaise”与告诉应用程序“应用程序”激活,您将得到想要的。但需要注意的是(这不是答案的原因)您似乎无法通过窗口ID以这种方式指定窗口(这很有意义,因为我的理解是正确的,窗口ID是特定于应用程序的)。附加问题,-1可能是首选项/查找对话框之类的东西,它们可能是可见的,也可能不是可见的。我希望这对我有用,但它只会激活给定应用程序的最后一个活动窗口。