Kann AppleScript auf das Menü extra einer Drittanbieter-App klicken?

Viele Apps von Drittanbietern haben kleine Menüsymbole in der oberen rechten Ecke der Menüleiste, z. B. Evernote, iStat, Parallels Desktop und so weiter. Ich habe versucht, einige AppleScripts zu schreiben, um auf diese Menüsymbole zu klicken, aber alle sind fehlgeschlagen .

Nehmen Sie zum Beispiel "PD":

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

Ich kann mehrere Menüpunkte wie "Apple", "Parallels Desktop", "Datei", "Bearbeiten", ..., "Hilfe" abrufen, die anscheinend die oberen linken Menüs von PD sind. Außerdem erhält man auch ein Menü-Extra , das wie folgt beschrieben wird:

{Mindestwert:fehlender Wert, Ausrichtung:fehlender Wert, Position:{1338, 0}, Klasse:Menüleistenelement, Barrierefreiheitsbeschreibung:"", Rollenbeschreibung:"Menü extra", fokussiert:false, Titel:fehlender Wert, Größe :{30, 22}, Hilfe:"", gesamter Inhalt:{}, aktiviert:true, Maximalwert:fehlender Wert, Rolle:"AXMenuBarItem", Wert:fehlender Wert, Unterrolle:"AXMenuExtra", ausgewählt:false, Name :fehlender Wert, Beschreibung:""}

Nachdem ich die Position mit Accessibility Inspector überprüft habe, kann ich bestätigen, dass dieses Menü-Extra das Menüsymbol ist, auf das ich klicken möchte. Dann schreibe ich das:

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

oder ersetzen Sie die "Klick"-Anweisung durch:

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

oder mit:

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

Alle oben genannten Codes geben das gleiche Ergebnis zurück: fehlender Wert , und es werden überhaupt keine Menüs angezeigt!

Bei den System-UI-Elementen wie „Text eingeben“, „Datum und Uhrzeit“, „WLAN“, „Batterie“, „VPN“ funktioniert die Klickmethode. ABER für Apps von Drittanbietern funktioniert es nicht.

Wie kann man also über AppleScript auf diese Menü-Extras von Drittanbietern klicken?

Vielen Dank!!

Ich habe festgestellt, dass einige Apps von Drittanbietern - insbesondere solche mit einem benutzerdefinierten Dropdown-Menü - nicht skriptfähig zu sein scheinen. Ich habe von einem Trick zur Verwendung von Automator und seinem Watch-me-do-Menüelement „Menu Workflow > Record [Shift-Cmd-R]“ gehört, das einige „Aktionssymbole“ zurückgibt, die als nächstes in ScriptEditor eingefügt werden können. Es gelang mir, einige Klicks auf das Menüsymbol von Avira aufzuzeichnen, die von Automator „wiederholt“ werden konnten – aber NICHT „wiederholt“ würden, wenn sie identisch in ein ScriptEditor-Fenster eingefügt würden. Zumindest können Sie durch dieses Verfahren eine genaue Beschreibung Ihres "Menüsymbols" erhalten oder am Ende vielleicht eine Automator-App verwenden ....

Antworten (1)

Ich hatte ein Problem damit, AppleScript dazu zu bringen, auf das Menü Extra von iTeleport Connect zu klicken, bis ich Folgendes versuchte:

tell application "System Events" to tell process "iTeleport Connect"
tell (menu bar item 1 of menu bar 2)
    click --  This click appears to be the important addition that allows you to drill down to the other items
    click menu item "Connect" of menu 1
end tell
end tell
Das OP hat dies offensichtlich bereits versucht und festgestellt, dass es nicht funktioniert hat.
Das Hinzufügen des einsamen "Klicks" macht es möglich. :-)
Es spielt keine Rolle, dass Sie es anders geschrieben haben, da beide das Ereignis als ausführen tell application "System Events" to click menu bar item 1 of menu bar 2 of process "ProcessName"!