如何在不执行激活并将其他窗口置于最前面的情况下,用applescript聚焦特定窗口?


18

我正在寻找一种使用AppleScript的方法来选择/聚焦应用程序的特定窗口,而无需实际执行“激活”操作,该操作将所有窗口置于最前面。

这是我到目前为止的内容:

tell application "Google Chrome"
    set windowTitle to title of first window whose title contains "whatever"
end tell
tell application "System Events" to tell process "Google Chrome"
    click menu item windowTitle of menu 1 of menu bar item "Window" of menu bar 1
end tell
tell application "Google Chrome" to activate    

问题是最后一行中的“激活”。那把所有东西都放在了前面,但是我只想要一个窗口。

Answers:


15

您说对了,该activate命令将引发所有窗口。在openshell命令只提出了一个窗口,但:

tell application "Google Chrome" to set index of window 1 where title contains "whatever" to 1
delay 0.05
do shell script "open -a Google\\ Chrome"

啊,太好了。不幸的是,如果Chrome已经聚焦,则“接近”窗口将闪烁到最前面,并且当前聚焦的窗口将胜出。如果我在打开-a的同时使用“单击菜单项”技术,则它似乎可以工作,但这需要可访问性。有什么想法可以解决吗?
亚伦詹森(Aaron Jensen)2014年

1
只需在两行之间添加“延迟0.05”,就可以很好地工作。再次感谢!
亚伦·詹森2014年

我无法复制它,但是您也可以尝试tell application "System Events" to tell process "Google Chrome" to perform action "AXRaise" of window 1
Lri 2014年

3
我得到:execution error: The variable title is not defined. (-2753)
散布

3
回复:执行错误。更改titlename
沃恩
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.