Wie können Sie die Skript-Menüleiste mit AppleScript aktivieren?

Wenn Sie in AppleScript das in der Menüleiste anzeigen möchten, Script Menumüssen Sie:

  1. Klicken Sie auf Anwendungen
  2. Scrollen Sie nach unten und klicken Sie auf Dienstprogramme
  3. Klicken Sie auf Skripteditor (dieser hieß in älteren OS X-Versionen AppleScript Editor)
  4. Klicken Sie auf den Menüpunkt „Skript-Editor“ und dann auf „Einstellungen …“.
  5. Klicken Sie im Dialogfeld "Einstellungen" auf "Skriptmenü in der Menüleiste anzeigen".
  6. Wenn es nicht ausgewählt ist, sollten Sie die Option „Computerskripte anzeigen“ aktivieren

aber gibt es eine Datei im System, auf die ich abzielen kann, um dies in einem Skript zu aktivieren? Ich versuche, ein Installationsprogramm zu erstellen, das dies einschaltet, wenn es nicht aktiv ist, aber ich habe Probleme, herauszufinden, wo ich im System darauf zugreifen kann. Es macht nichts aus, do shellaber Sie ziehen es vor, Automator nicht zu verwenden.

Antworten (3)

10.13 (High Sierra) und früher

Wenn Sie nicht über Skripteditor > Einstellungen > Allgemein gehen möchten, um das Kontrollkästchen
[ ] Skriptmenü in Menüleiste anzeigen zu aktivieren, dann ist hier eine Möglichkeit, das Skriptmenü mit AppleScript zu aktivieren :

tell application "System Events"
    if not (script menu enabled) then
        tell current application
            do shell script "open '/System/Library/CoreServices/Menu Extras/Script Menu.menu'"
        end tell
    end if
end tell

Sie könnten einfach verwenden:

do shell script "open '/System/Library/CoreServices/Menu Extras/Script Menu.menu'"

Da Systemereignisse jedoch eine script menu enabled Eigenschaft haben , ist es sinnvoll, zuerst zu prüfen, ob sie aktiviert ist oder nicht. Wie auch immer, das Öffnen der Zieldatei lädt das Skriptmenü und aktiviert das Kontrollkästchen [√] Skriptmenü in Menüleiste anzeigen unter: Skripteditor > Einstellungen > Allgemein

Auch von Terminal aus könnten Sie einfach Folgendes ausführen:

open '/System/Library/CoreServices/Menu Extras/Script Menu.menu'

Das Öffnen der Zieldatei in irgendeiner gezeigten Weise erreicht das Ziel.

Übrigens, wenn das Skriptmenü aktiviert ist, ist die Ziel-PLIST-Datei :

com.apple.systemuiserver.plist

Der Schlüssel ist ein boolescher Wert und NSStatusItem Visible com.apple.scriptmenuhat auch ein Element im menuExtras Array , das Stringden Pfadnamen des Elements enthält.

Beachten Sie, dass die obigen Informationen unter macOS 10.13.5 gesammelt wurden .


10.14 (Mojave) und höher

Das Skriptmenü wurde anstelle einer Datei zu einer vollwertigen Anwendung ausgebaut .menu. Es befindet sich jetzt in /System/Library/CoreServices/Script Menu.app.

Um es auf 10.14+ zu aktivieren, ändert sich der Terminal/Shell-Befehl in:

open '/System/Library/CoreServices/Script Menu.app'

Diese Einstellung wird von der plist im folgenden Pfad gesteuert: ~/Library/Preferences/com.apple.scriptmenu.plist.

Welches Folgendes enthält (wenn aus):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>ScriptMenuEnabled</key>
    <false/>
</dict>
</plist>

Das falseändert sich in truewenn es aktiviert wird.

Sie ändern diese Einstellung mit einem defaultsBefehl in bash.

defaults write com.apple.scriptmenu.plist ScriptMenuEnabled true

oder

defaults write com.apple.scriptmenu.plist ScriptMenuEnabled false

Also in AppleScript:

do shell script "defaults write com.apple.scriptmenu.plist ScriptMenuEnabled true"

oder

do shell script "defaults write com.apple.scriptmenu.plist ScriptMenuEnabled false"
Ich sehe die Datei, aber sie läuft im Terminal und do shellfunktioniert nicht im laufenden Betrieb. Suche immer noch nach einer Lösung ohne Neustart.
In macOS 10.13.5 ist sowieso ScriptMenuEnabledkein gültiger Schlüssel in der com.apple.scriptmenu.plistDatei. Soweit ich sehe, gibt es nur zwei gültige Schlüssel für die com.apple.scriptmenu.plistDatei PutAppScriptsFirstund ShowLibraryScripts.
@ user3439894 Ich habe es auf Mojave getestet, aber ich vermute, es wäre für alle Versionen gleich.

Bei früheren Versionen von macOS bin ich mir nicht ganz sicher, aber bei macOS Big Sur ist die Anwendung „AppleScript Utility“ (die sich hier befindet … „/System/Library/CoreServices/AppleScript Utility.app/“) skriptfähig.

Damit müssen die Einstellungen von Script Editor.app nicht geöffnet oder plist-Dateien bearbeitet werden. Auch ein Neustart ist nicht erforderlich.

tell application "AppleScript Utility"
    set Script menu enabled to true -- true or false
    set application scripts position to top -- top or bottom
    set show Computer scripts to false -- true or false
end tell