7 votes

Existe-t-il une commande Terminal pour ouvrir un élément de la barre de menu Mac ?

Supposons que je veuille ouvrir une application spécifique qui a une icône dans la barre de menu, est-il possible de le faire en utilisant une commande shell ?

Dans mon cas, il existe une application appelée "Quick View Calendar" (disponible dans le Mac App Store) qui apparaît dans la barre de menu, que j'aimerais ouvrir avec une commande Terminal et utiliser ce code pour lancer un service Automator pour

6voto

OnePablo Points 1

Puisqu'il suffit de cliquer sur l'icône de la barre de menu pour ouvrir l'application, AppleScript peut réaliser cela très facilement à l'aide d'un script GUI, ce qui nécessite d'accorder les bonnes autorisations d'accessibilité au programme que vous utiliserez pour exécuter l'AppleScript (par ex. script Éditeur , Automate , Terminal etc.)

Il faut donc d'abord accorder les autorisations appropriées via Préférences du système . Cette capture d'écran provient de MacOS 10.13 :

System Preferences on MacOS 10.13

Une fois cette opération effectuée, ouvrez script Éditeur et exécutez ce script. Je n'ai pas de Vue rapide du calendrier mais les principes de la plupart des applications de la barre de menu sont les mêmes, ce qui devrait permettre d'obtenir une liste de noms d'applications dont les icônes se trouvent dans votre barre de menu :

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

"Quick View Calendar" ou quelque chose de similaire devrait apparaître dans la liste qui est renvoyée par l'exécution de cette commande. C'est le nom que j'ai utilisé dans l'extrait suivant, qui fait ce dont vous avez besoin, à savoir cliquer sur l'icône de la barre de menu et ouvrir l'application. Si le nom est différent, vous pouvez le changer vous-même :

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

Vous pouvez coller ce code dans un Exécuter AppleScript action en Automate (là encore, à condition que Automate a reçu les permissions d'accessibilité), qui fera alors partie de votre flux de travail lors de la création du service que vous souhaitez créer.

Votre demande initiale était d'exécuter une commande à partir de Terminal pour effectuer cette action, vous pouvez donc simplement ouvrir la page Terminal (encore une fois, permissions d'accessibilité !), et tapez ceci :

    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 vous rencontrez des problèmes, faites-le moi savoir.

1voto

Douglas Points 10417

Terminal (bash, csh, zsh, etc.) n'ouvre pas les commandes de la barre de menu. C'est à cela que sert AppleScript - il scripts l'interface graphique.

Pour qu'une application "exécute" sur la ligne de commande une option/fonction à laquelle on accède normalement par la barre de menus, il faut lui passer des paramètres de ligne de commande. En général, la commande ressemble à ceci :

$ command -x [optional arguments]

La commande ci-dessus sera exécutée avec le drapeau d'option x (où x est n'importe quel drapeau que la commande accepte) et tous les arguments optionnels pour ce drapeau.

La mise en garde à ce sujet est que l'application doit accepter les options de la ligne de commande. Si ce n'est pas le cas, il n'y aura rien que vous puissiez script à partir de la ligne de commande pour faire ce que vous voulez.

Si c'est le cas, tournez-vous vers AppleScript, mais sachez que toutes les applications ne sont pas scriptables sous AppleScript.

0voto

zonble Points 2925

Vous pouvez compiler une application très simple de 14 lignes dans le cadre de Foundation, qui vous permettra désormais de cliquer sur n'importe quel point x/y à l'écran,

[ Contenu retiré en raison de l'ampleur de la crise anonyme vote négatif ]

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X