Wenn Sie in AppleScript das in der Menüleiste anzeigen möchten, Script Menu
müssen Sie:
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 shell
aber Sie ziehen es vor, Automator nicht zu verwenden.
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.scriptmenu
hat auch ein Element im menuExtras
Array , das String
den Pfadnamen des Elements enthält.
Beachten Sie, dass die obigen Informationen unter macOS 10.13.5 gesammelt wurden .
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 true
wenn es aktiviert wird.
Sie ändern diese Einstellung mit einem defaults
Befehl 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"
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
ʀ2ᴅ2
do shell
funktioniert nicht im laufenden Betrieb. Suche immer noch nach einer Lösung ohne Neustart.Benutzer3439894
ScriptMenuEnabled
kein gültiger Schlüssel in dercom.apple.scriptmenu.plist
Datei. Soweit ich sehe, gibt es nur zwei gültige Schlüssel für diecom.apple.scriptmenu.plist
DateiPutAppScriptsFirst
undShowLibraryScripts
.JBis