Muchas aplicaciones de terceros tienen íconos de menú pequeños en la esquina superior derecha de la barra de menús, como Evernote, iStat, Parallels Desktop, etc. Intenté escribir algunos AppleScripts para hacer clic en los iconos del menú, pero todos fallaron .
Toma "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 del menú como "Apple", "Parallels Desktop", "Archivo", "Editar", ..., "Ayuda", que aparentemente son los menús de la parte superior izquierda de la DP. Además, también se obtiene un menú extra y se describe a continuación:
{valor mínimo: valor faltante, orientación: valor faltante, posición: {1338, 0}, clase: elemento de la barra de menú, descripción de accesibilidad: "", descripción del rol: "menú extra", enfocado: falso, título: valor faltante, tamaño: {30, 22}, ayuda: "", contenido completo: {}, habilitado: verdadero, valor máximo: valor faltante, rol: "AXMenuBarItem", valor: valor faltante, subrole: "AXMenuExtra" , seleccionado: falso, nombre: valor faltante, descripción: ""}
Después de verificar la posición por el Inspector de accesibilidad, puedo confirmar que este menú adicional es el icono de menú en el que quiero hacer clic. Luego escribo esto:
tell application "System Events"
tell process "Parallels Desktop"
click menu bar item 1 of menu bar 2
end tell
end tell
o reemplaza 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 se muestra ningún menú!
En cuanto a los elementos de la IU 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 los extras del menú de terceros a través de AppleScript?
¡Muchas gracias!