¿Hay un comando de Terminal para abrir un elemento de la barra de menú de Mac?

5

Supongamos que quiero abrir una aplicación específica que tiene un icono en la bandeja de la barra de menús, ¿es posible hacerlo usando un comando de shell?

En mi caso, hay una aplicación llamada "Quick View Calendar" (disponible en Mac App Store) que aparece en la barra de menús, que me gustaría abrir con un comando de Terminal y usar ese código para ejecutar un Servicio de automatización a

    
pregunta Rathan 24.02.2018 - 04:37

3 respuestas

5

Dado que todo lo que se requiere es un solo clic en el icono de la barra de menú para abrir la aplicación, AppleScript puede lograr esto muy fácilmente mediante el uso de secuencias de comandos GUI, lo que requiere que se otorguen los permisos de accesibilidad correctos para cualquier programa ejecute el AppleScript (por ejemplo, Script Editor , Automator , Terminal , etc.).

Entonces, primero, conceda los permisos apropiados a través de Preferencias del Sistema . Esta captura de pantalla es de MacOS 10.13:

Unavezhechoesto,abraEditordesecuenciasdecomandosyejecuteestasecuenciadecomandos.NotengolaVistarápidadecalendario,perolosprincipiosparalamayoríadelasaplicacionesdelabarrademenúsonlosmismos,porloqueesperoqueobtengamosunalistadenombresdeaplicacionesquetieneniconosenlabarrademenú:

tellapplication"System Events" to get the name of ¬
        every process whose class of menu bar 2 is menu bar 

El "Calendario de vista rápida" o algo similar debería aparecer en la lista que se devuelve al ejecutar ese comando. Este es el nombre que he usado en el siguiente fragmento de código, que es lo que realmente hace lo que necesita, es decir, para emitir un clic del mouse en el icono de la barra de menú y abrir la aplicación. Si el nombre es algo diferente, puede cambiarlo usted mismo:

    tell application "System Events" to tell process "Quick View Calendar" to ¬
        click menu bar item 1 of menu bar 2

Puede pegar este código en una acción Ejecutar AppleScript en Automator (nuevamente, siempre que Automator tenga permisos de accesibilidad), que luego forme parte de su flujo de trabajo para crear el servicio que desea crear.

Su solicitud original fue ejecutar un comando desde Terminal para realizar esta acción, así que simplemente puede abrir Terminal (de nuevo, ¡permisos de accesibilidad!) y escriba esto :

    osascript \
        -e 'tell application "System Events" to ¬' \
        -e 'tell process "Quick View Calendar" to ¬' \
        -e 'click menu bar item 1 of menu bar 2'

Si tiene algún problema, avíseme.

    
respondido por el CJK 25.02.2018 - 12:51
1

El terminal (bash, csh, zsh, et al.) no "abre" los comandos de la barra de menú. Esto es lo que AppleScript es para: crea scripts en la GUI.

Para que una aplicación "ejecute" una opción / función en la línea de comando a la que normalmente se accede a través de la barra de menú, se pasan los parámetros de la línea de comando. Normalmente, el comando se ve así:

$ command -x [optional arguments]

El comando anterior se ejecutará con el indicador de opción x (donde x es cualquier indicador que el comando acepte) y cualquier argumento opcional para ese indicador.

La advertencia aquí es que la aplicación debe aceptar las opciones de línea de comandos. Si no lo hace, no habrá nada que pueda hacer un script desde la línea de comandos para hacer lo que quiera.

Si ese es el caso, consulte AppleScript, pero tenga en cuenta que no todas las aplicaciones son compatibles con scripts bajo AppleScript.

    
respondido por el Allan 24.02.2018 - 11:46
0

Puedes compilar una aplicación de framework Foundation de 14 líneas muy simple, que a partir de entonces te dará la posibilidad de hacer clic en cualquier punto x / y en la pantalla,

[Contenidos retirados debido a la masiva anónima votando ...]

    
respondido por el clemsam lang 09.11.2018 - 19:01

Lea otras preguntas en las etiquetas