Wählen Sie einen Menüpunkt in AppleScript aus, ohne "Systemereignisse" in 10.9 Mavericks zu verwenden

15

Ich beantwortete gerade eine andere Frage und wurde an ein neues "Feature" in Mavericks erinnert.

Früher hatte ich eine Reihe kleiner Automator Services, die keine Eingabe erforderten, aber etwas Nützliches taten, wenn sie an einen Tastenanschlag gebunden waren. Das perfekte Beispiel war, das Terminal nach vorne zu bringen. Einige davon erforderten die Auswahl eines Menüpunkts in der Anwendung, der in den Vordergrund gestellt wurde, wie z Bring All to Front.

Jetzt müssen Sie anscheinend jeder einzelnen App "Zugriff" gewähren, damit ein universeller Tastenanschlag funktioniert, wenn der Dienst die System EventsAppleScript-Bibliothek verwendet.

Kennt jemand eine Lösung dafür?

Tony Williams
quelle
2
Die Tatsache, dass Accessibility pro App einzeln autorisiert werden muss, ist lächerlich. Sie benötigen eine Einstellung, die der Allow applicationsFunktion sehr ähnlich ist.
l'L'l
1
Nun, sie benötigen eine Möglichkeit, die AppleScript-Bibliothek "Systemereignisse" zu autorisieren, die den Befehl ausgibt, und nicht die App, die ausgeführt wird, wenn Sie den Dienst aktivieren. Aber es ist lächerlich.
Tony Williams

Antworten:

25

Ich weiß nicht, wie man auf Menüelemente klickt, ohne Systemereignisse zu verwenden, aber wenn andere hier suchen, wie man auf Menüelemente mit Systemereignissen klickt:

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

Sie können allen derzeit installierten Anwendungen erlauben, die Eingabehilfen-API zu verwenden, indem Sie sie in die Liste in den Systemeinstellungen ziehen:

Lri
quelle