Ventana sin nombre en Applescript

Estoy creando secuencias de comandos de iTunes con applescript usando secuencias de comandos de interfaz de usuario. Dependiendo de lo que esté haciendo, aparecerá una notificación de iTunes, momento en el que debo manejarlo. El nombre de la ventana es AXWindow: "", y no puedo coser para que Applescript lo maneje. Intenté usar el literal "", intenté definir una variable en "", probé ambos casos con caracteres de escape e intenté obtener el nombre del proceso más importante.

tell application "System Events"
     set processName to name of front window
end tell
tell button "whatever" of window processName
     click
end tell

Pero aparece el "error "Los eventos del sistema obtuvieron un error: no se puede obtener la ventana 1. Índice no válido"." Cualquier ayuda en esto sería muy apreciada.

preguntado el 12 de junio de 12 a las 14:06

2 Respuestas

Puedes hacer algo como esto:

tell application "iTunes" to activate
tell application "System Events"
    tell process "iTunes"
        set xxx to first UI element whose role description is "dialog"
    end tell
end tell

O para encontrarlos todos:

tell application "iTunes" to activate
tell application "System Events"
    tell process "iTunes"
        set xxx to every UI element
    end tell
end tell

Respondido el 12 de junio de 12 a las 16:06

Bueno, por lo general, las notificaciones o los diálogos de usuario se mostrarán como la ventana principal y permanecerán encima de las otras ventanas de la misma aplicación hasta que el usuario (o el script) haga clic en algo.

Por lo tanto, la ventana de diálogo (si la hay) debe ser accesible a través del especificador window 1. Luego puede verificar si esa es realmente la ventana que le interesa leyendo sus propiedades:

tell application "System Events" to tell application process "iTunes"
  properties of window 1
end tell

Respondido el 12 de junio de 12 a las 16:06

Pensé lo mismo, pero aparece un error que me dice que la ventana 1 no es válida: MrMannWood

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.