¿Cómo enfoco una ventana específica con AppleScript sin hacer una activación y traer otras ventanas al frente?

18

Estoy buscando un método con AppleScript para seleccionar / enfocar una ventana específica de una aplicación sin realmente hacer una "activación" que traiga todas las ventanas al frente.

Esto es lo que tengo hasta ahora:

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    

El problema es el "activar" en la última línea. Eso trae todo al frente, pero solo quiero una ventana.

Aaron Jensen
fuente

Respuestas:

15

Tienes razón en que el activatecomando levanta todas las ventanas. Sin openembargo, el comando de shell solo abre una ventana:

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
fuente
Ah, esto es genial. Desafortunadamente, se acerca, si Chrome ya está enfocado, la ventana "lo que sea" solo parpadea al frente y la ventana actualmente enfocada gana. Si uso la técnica de "elemento de menú de clic" junto con el abierto -a, parece funcionar, pero eso requiere accesibilidad. ¿Alguna idea para evitar eso?
Aaron Jensen
1
Simplemente agregar un "retraso de 0.05" entre sus dos líneas parece funcionar perfectamente. ¡Gracias de nuevo!
Aaron Jensen el
No pude reproducirlo, pero también podrías intentarlo tell application "System Events" to tell process "Google Chrome" to perform action "AXRaise" of window 1.
Lri
3
Estoy recibiendo:execution error: The variable title is not defined. (-2753)
el aroma
3
Re: error de ejecución. Cambiar titlea name.
Vaughan