Sélectionnez un élément de menu dans AppleScript sans utiliser «Événements système» dans 10.9 Mavericks

15

Je venais de répondre à une autre question et on m'a rappelé une nouvelle "fonctionnalité" dans Mavericks.

J'avais l'habitude d'avoir un certain nombre de petits Automator Services qui ne prenaient aucune entrée mais faisaient quelque chose d'utile lorsqu'ils étaient liés à une frappe. L'exemple parfait était celui d'amener le terminal à l'avant. Certains d'entre eux nécessitaient la sélection d'un élément de menu dans l'application présentée comme, par exemple Bring All to Front.

Il semble maintenant que vous devez accorder "l'accessibilité" à chaque application afin qu'une frappe universelle fonctionne si le service utilise la System Eventsbibliothèque AppleScript.

Quelqu'un connaît une solution à cela?

Tony Williams
la source
2
Le fait que l'accessibilité doit être autorisée individuellement par application est ridicule. Ils ont besoin d'un paramètre similaire à la Allow applicationsfonctionnalité.
l'L'l
1
Eh bien, ils ont besoin d'un moyen d'autoriser la bibliothèque AppleScript «Événements système» qui émet la commande plutôt que l'application qui s'exécute lorsque vous activez le service. Mais c'est ridicule.
Tony Williams

Réponses:

25

Je ne sais pas comment cliquer sur les éléments de menu sans utiliser les événements système, mais si d'autres arrivent ici à la recherche de la façon de cliquer sur les éléments de menu avec les événements système:

tell application "System Events" to tell process "Finder"
    click menu item "New Finder Window" of menu 1 of menu bar item "File" of menu bar 1
end tell
tell application "System Events" to tell process "Finder"
    set frontmost to true
    click (menu item 1 where its name starts with "Compress") of menu 1 of menu bar item "File" of menu bar 1
end tell
tell application "System Events" to tell process "Finder"
    set frontmost to true
    tell menu bar item "File" of menu bar 1
        click
        click menu item "Open With" of menu 1
    end tell
end tell

Vous pouvez autoriser toutes les applications actuellement installées à utiliser l'API d'accessibilité en les faisant glisser vers la liste dans les Préférences Système:

Lri
la source