Как мне сфокусировать определенное окно на appleScript без активации и переноса других окон на передний план?

18

Я ищу метод w / 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    

Проблема в том, чтобы «активировать» в последней строке. Это все выводит на передний план, но я просто хочу одно окно.

Aaron Jensen
источник

Ответы:

15

Вы правы в том, что activate Команда поднимает все окна. open Команда shell открывает только одно окно:

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"
Lri
источник
Ах, это здорово. К сожалению, это близко, если Chrome уже сфокусирован, окно «что бы то ни было» мигает только спереди, и текущее фокусированное окно побеждает. Если я использую технику «click menu item» вместе с open -a, она, кажется, работает, но это требует доступности. Есть идеи, чтобы обойти это?
Aaron Jensen
1
Просто добавление «задержки 0,05» между вашими двумя строками, кажется, работает отлично. Еще раз спасибо!
Aaron Jensen
Я не мог воспроизвести это, но вы также можете попробовать tell application "System Events" to tell process "Google Chrome" to perform action "AXRaise" of window 1,
Lri
3
Я собираюсь: execution error: The variable title is not defined. (-2753)
redolent
3
Re: ошибка выполнения. + Изменить title в name,
vaughan