Estoy recolectando desde el texto que desea acceder a un elemento de menú de Camarero 3 que se encuentra en la barra de menú en mucho la misma manera que mi Dropbox app:
![MacOS Menu Bar]()
Espero haber esta bien, para no tener Camarero a mí mismo. Sin embargo, saber cómo acceder a la opción de menú con AppleScript no es demasiado difícil. Como se ha venido haciendo ya, vamos a utilizar la GUI de secuencias de comandos para hacer esto, así que asegúrese de Editor de secuencias de Comandos tiene permiso para controlar su equipo, en Preferencias del Sistema > Seguridad Y Privacidad > Privacidad > Accesibilidad (MacOS Alta de la Sierra).
Porque no tengo Camarero a mí mismo, tengo que hacer un trabajo de detective en AppleScript para mí (pero es una buena práctica, como se muestra cómo resolver problemas como este en el futuro):
Parte 1: Acceso al Menú de Icono
Ejecute este comando:
tell application "System Events" to get every process whose name contains "bartender"
Me encontré con un comando similar para "dropbox" y se devuelve esto:
--> {application process "Dropbox",
application process "DropboxActivityProvider"}
Me imagino Camarero se tienen uno o dos de los procesos más así. Uno de ellos es, probablemente, llamado "Barman". Elegir de que, a menos que el otro tiene obviamente una útil nombre, como "BartenderMenu" (yo lo dudo).
Ahora ejecute este, sustituyendo en el apropiado nombre de proceso (que es sensible a mayúsculas):
tell application "System Events" to tell process "Bartender" to get every menu bar
Esperemos que devuelve esto:
--> {menu bar 1 of application process "Bartender" of application "System Events",
menu bar 2 of application process "Bartender" of application "System Events"}
menu bar 1
es el menú de la barra que contiene el Menú Apple (
) en la parte superior izquierda. menu bar 2
(si existe) será el menú de la barra que contiene el icono de la aplicación.
Ahora usted debería ser capaz objetivo de que el icono de menú con este comando:
tell application "System Events" to tell process "Bartender" to ¬
click menu bar item 1 of menu bar 2
Esperemos que debe solucionarlo. La integridad, aquí una línea de trabajo que se lleva toda la barra de menú de aplicaciones en uno:
tell application "System Events" to get menu bar 2 of every process
Se devolverá un organizar, la mayoría de cuyos elementos estarán missing value
(en representación de los procesos que no tienen una segunda barra de menú-los únicos que no están de barra de menú de aplicaciones). Entre los valores que faltan serán los nombres de las aplicaciones que sentarse en la parte de arriba, y probablemente se puede solo tienes que elegir "Bartender" (o lo que sea que va a ser llamado) en seguida el uso de este método.
Parte 2: Acceder al Menú y sus Elementos de Menú
Si, cuando normalmente haga clic en el menú del icono de la aplicación de Camarero, se muestra un menú, a continuación, usted querrá saber cómo acceder a los elementos de menú de AppleScript así.
El menú en sí, no llegó a existir hasta que el icono que se ha hecho clic y aparecerá el menú. El menú es (o será) llamado menu 1
. Cada uno de sus elementos de menú se llama menu items
y hace referencia por su nombre (que es el texto del elemento de menú en sí, por ejemplo, "Dejar de Camarero 3").
Aquí es el comando que va a acceder al menú:
tell application "System Events" to tell process "Bartender" to ¬
get menu items of menu 1 of menu bar item 1 of menu bar 2
Sin embargo, es necesario llevar el menú a la existencia en primer lugar, de lo contrario se acaba de tirar un error o regresar missing value
. Por lo tanto, ejecute el comando haga clic en el menú del icono de la aplicación en primer lugar, a continuación, ejecute:
tell application "System Events" to tell process "Bartender" to ¬
tell menu bar item 1 of menu bar 2
click
get menu items of menu 1
end tell
Y, del mismo modo, se puede emitir un click
comando a un elemento de menú de su elección haciendo referencia a su nombre:
click menu item "Quit Bartender 3" of menu 1
(convenientemente cerrado en el correspondiente tell
declaraciones/bloques).
Por Último: Que Molesto Retraso
Molesto, habrá un retardo de 5 segundos entre la emisión de una click
comando y recuperar la lista de elementos de menú. No sé por qué, pero sí sé que es un estándar que otros usuarios del informe. Aquí's de la cuestión planteada sobre Stack Overflow junto con alguien de la supuesta solución para el problema (no he probado a mí mismo).
Cualquier duda o problema, deja un comentario y voy a hacer mi mejor esfuerzo para ayudar.