Jak skupić określone okno za pomocą AppleScript bez aktywowania i przeniesienia innych okien na przód?

18

Szukam metody w / AppleScript do wybrania / skupienia określonego okna aplikacji bez wykonywania „aktywacji”, która przenosi wszystkie okna na pierwszy plan .

Oto co mam do tej pory:

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    

Problemem jest „aktywacja” w ostatnim wierszu. To przenosi wszystko na przód, ale chcę tylko jedno okno.

Aaron Jensen
źródło

Odpowiedzi:

15

Masz rację, że activatepolecenie podnosi wszystkie okna. Polecenie openpowłoki podnosi tylko jedno okno:

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
źródło
Ach, to wspaniale. Zbliża się niestety, jeśli Chrome jest już skupiony, okno „cokolwiek” miga tylko do przodu, a aktualnie aktywne okno wygrywa. Jeśli użyję techniki „kliknij pozycję menu” razem z otwartym -a, wydaje się, że działa, ale wymaga to dostępności. Jakieś pomysły na obejście tego?
Aaron Jensen
1
Wydaje się, że samo dodanie „opóźnienia 0,05” między dwiema liniami działa idealnie. Dzięki jeszcze raz!
Aaron Jensen
Nie mogłem tego odtworzyć, ale możesz też spróbować tell application "System Events" to tell process "Google Chrome" to perform action "AXRaise" of window 1.
Lri
3
Dostaję:execution error: The variable title is not defined. (-2753)
pachnące
3
Re: błąd wykonania. Zmień titlena name.
vaughan