Come focalizzare una finestra specifica con applecript senza fare un'attivazione e portare in primo piano altre finestre?


18

Sto cercando un metodo con AppleScript per selezionare / mettere a fuoco una finestra specifica di un'applicazione senza effettivamente fare un "attivare" che porta tutte le finestre in primo piano.

Ecco cosa ho finora:

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    

Il problema è "attivare" nell'ultima riga. Questo porta tutto in primo piano, ma voglio solo una finestra.

Risposte:


15

Hai ragione che il activatecomando solleva tutte le finestre. Il opencomando shell solleva solo una finestra però:

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"

Ah, questo è fantastico. Si avvicina, sfortunatamente, se Chrome è già focalizzato la finestra "qualunque" lampeggia solo in primo piano e la finestra attualmente focalizzata vince. Se uso la tecnica della "voce di menu clic" insieme a open -a, sembra funzionare, ma ciò richiede accessibilità. Qualche idea per aggirare questo?
Aaron Jensen,

1
L'aggiunta di un "ritardo 0,05" tra le due righe sembra funzionare perfettamente. Grazie ancora!
Aaron Jensen,

Non sono riuscito a riprodurlo, ma potresti anche provare tell application "System Events" to tell process "Google Chrome" to perform action "AXRaise" of window 1.
Lri,

3
Ricevo:execution error: The variable title is not defined. (-2753)
redolent il

3
Ri: errore di esecuzione. Cambia titlein name.
vaughan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.