¿Puede AppleScript hacer clic en el menú adicional de una aplicación de terceros?

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!!

Descubrí que algunas aplicaciones de terceros, especialmente las que tienen un menú desplegable personalizado, parecen no ser programables. Escuché de un truco para usar Automator y su "Flujo de trabajo de menú> Grabar [Shift-Cmd-R]" elemento de menú watch-me-do que devuelve algunos "iconos de acción" que luego se pueden pegar en ScriptEditor. Logré registrar algunos clics en el icono del menú de Avira que se podían "repetir" desde Automator, pero NO se "reproducirían" si se pegaban de forma idéntica en una ventana de ScriptEditor. Al menos puede obtener una descripción exacta de su "icono de menú" a través de este procedimiento, o tal vez usar una aplicación de Automator al final...

Respuestas (1)

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
El OP claramente ya intentó esto y declaró que no funcionó.
La adición del "clic" solitario hace que funcione. :-)
¡No importa que lo escribiste de manera diferente ya que ambos ejecutan el evento como tell application "System Events" to click menu bar item 1 of menu bar 2 of process "ProcessName"!