Muchas aplicaciones de terceros tienen pequeños íconos de menú en la esquina superior derecha de la barra de menú, como Evernote, iStat, Parallels Desktop, etc. Intenté escribir algunos AppleScripts para hacer clic en esos íconos de menú, pero todos fallaron .
Tome "PD" por ejemplo:
tell application "System Events"
tell process "Parallels Desktop"
get properties of every menu bar item of every menu bar
end tell
end tell
Puedo obtener varios elementos de menú como "Apple", "Parallels Desktop", "Archivo", "Editar", ..., "Ayuda", que aparentemente son los menús superiores izquierdos de PD. Además, también se obtiene un menú extra que se describe a continuación:
{valor mínimo: valor perdido, orientación: valor perdido, posición: {1338, 0}, clase: elemento de la barra de menú, descripción de accesibilidad: "", descripción del rol: "menú extra", centrado: falso, título: valor perdido, tamaño :{30, 22}, ayuda:"", contenido completo:{}, habilitado:verdadero, valor máximo:valor faltante, función:"AXMenuBarItem", valor:valor faltante, subfunción:"AXMenuExtra", seleccionado:falso, nombre :valor faltante, descripción:""}
Después de verificar la posición con el Inspector de accesibilidad, puedo confirmar que este menú adicional es el ícono de menú en el que quiero hacer clic. Entonces escribo esto:
tell application "System Events"
tell process "Parallels Desktop"
click menu bar item 1 of menu bar 2
end tell
end tell
o reemplace la declaración de "clic" con:
perform action "AXPress" of menu bar item 1 of menu bar 2
o con:
perform action "AXShowMenu" of menu bar item 1 of menu bar 2
Todos los códigos anteriores devuelven el mismo resultado: valor faltante , ¡y no aparece ningún menú!
En cuanto a los elementos de la interfaz de usuario del sistema, como "texto de entrada", "fecha y hora", "wifi", "batería", "VPN", el método de clic funciona. PERO para aplicaciones de terceros, no funciona.
Entonces, ¿cómo hacer clic en esos extras de menú de terceros a través de AppleScript?
¡¡Muchas gracias!!
Estaba teniendo problemas para que AppleScript hiciera clic en el menú adicional de iTeleport Connect hasta que probé lo siguiente:
tell application "System Events" to tell process "iTeleport Connect"
tell (menu bar item 1 of menu bar 2)
click -- This click appears to be the important addition that allows you to drill down to the other items
click menu item "Connect" of menu 1
end tell
end tell
tell application "System Events" to click menu bar item 1 of menu bar 2 of process "ProcessName"
!
clemsam lang