6 votes

Le langage AppleScript peut-il cliquer sur le menu supplémentaire d'une application tierce ?

De nombreuses applications tierces ont de petits icônes de menu dans le coin supérieur droit de la barre de menus, comme Evernote, iStat, Parallels Desktop, et ainsi de suite. J'ai essayé d'écrire quelques AppleScripts pour cliquer sur ces icônes de menu, mais sans succès.

Prenons "PD" par exemple:

tell application "System Events"
    tell process "Parallels Desktop"
        get properties of every menu bar item of every menu bar
    end tell

Je peux obtenir plusieurs éléments de menu comme "Apple", "Parallels Desktop", "Fichier", "Édition", ..., "Aide", qui sont apparemment les menus en haut à gauche de PD. De plus, un élément de menu supplémentaire est également obtenu et décrit comme suit:

{valeur minimale:valeur manquante, orientation:valeur manquante, position:{1338, 0}, classe:élément de la barre de menus, description d'accessibilité:"", description du rôle:"menu supplémentaire", focalisé:false, titre:valeur manquante, taille:{30, 22}, aide:"", contenu entier:{}, activé: vrai, valeur maximale:valeur manquante, rôle:"AXMenuBarItem", valeur:valeur manquante, sous-rôle:"AXMenuExtra", sélectionné:fal se, nom:valeur manquante, description:""}

Après avoir vérifié la position avec l'Inspecteur d'accessibilité, je peux confirmer que ce menu supplémentaire est l'icône de menu que je veux cliquer. Ensuite, j'écris ceci:

tell application "System Events"
    tell process "Parallels Desktop"
        click menu bar item 1 of menu bar 2
    end tell

ou remplacez l'instruction "click" par :

perform action "AXPress" of menu bar item 1 of menu bar 2

ou par:

perform action "AXShowMenu" of menu bar item 1 of menu bar 2

Tous les codes ci-dessus renvoient le même résultat: valeur manquante, et aucun menu ne s'affiche du tout!

Quant aux éléments de l'UI du système comme "texte d'entrée", "date et heure", "wifi", "batterie", "VPN", la méthode de clic fonctionne. MAIS pour les applications tierces, cela ne fonctionne pas.

Alors, comment cliquer sur ces éléments de menu tiers via AppleScript?

Merci beaucoup!!

2voto

AskAnotherWay Points 31

J'avais des difficultés à faire en sorte qu'AppleScript clique sur le menu supplémentaire de iTeleport Connect jusqu'à ce que j'essaie ce qui suit :

dire à l'application "Événements système" de dire au processus "iTeleport Connect"
dire à (élément de barre de menus 1 de barre de menus 2)
    cliquer --  Ce clic semble être l'ajout important qui vous permet de naviguer jusqu'aux autres éléments
    cliquer l'élément de menu "Connecter" du menu 1
fin dire
fin dire

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