Jak aktywować pasek menu skryptu za pomocą AppleScript?

1

W AppleScript, jeśli chcesz pokazać Script Menu na pasku menu musisz:

  1. Kliknij Aplikacje
  2. Przewiń w dół i kliknij Narzędzia
  3. Kliknij opcję Edytor skryptów (w starszym systemie OS X był to edytor AppleScript) wersje)
  4. Kliknij element menu „Edytor skryptów”, a następnie kliknij „Preferencje ...”
  5. W oknie dialogowym Preferencje kliknij „Pokaż menu skryptu na pasku menu”
  6. Jeśli nie jest wybrana, chcesz włączyć opcję „Pokaż skrypty komputerowe” opcja

ale czy w systemie jest plik, na który mogę skierować aktywację w skrypcie? Próbuję zbudować instalator, który włączy to, jeśli nie jest aktywny, ale mam problemy z odnalezieniem tego, w którym systemie mogę to zrobić. Nie przejmuj się do shell ale wolę nie korzystać z Automatora.

ʀ2ᴅ2
źródło

Odpowiedzi:

2

Jeśli nie chcesz przejść Edytor skryptów & gt; Preferencje & gt; Generał sprawdzić
[] Pokaż menu skryptu na pasku menu pole wyboru, oto jeden ze sposobów włączenia Menu skryptu za pomocą AppleScript :

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

Możesz po prostu użyć:

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

Jednak od tego czasu Zdarzenia systemowe ma script menu enabled własność , warto sprawdzić, czy jest włączona w pierwszej kolejności. Tak czy inaczej, otwierając plik docelowy ładuje Menu skryptu i sprawdza [√] Pokaż menu skryptu na pasku menu pole wyboru w: Edytor skryptów & gt; Preferencje & gt; Generał

Również z Terminal , możesz po prostu biegać:

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

Otwieranie plik docelowy w dowolny sposób osiąga cel.

Przy okazji, kiedy Menu skryptu jest włączony docelowy plik plist jest:

com.apple.systemuiserver.plist

The klawisz jest Boolean i jest NSStatusItem Visible com.apple.scriptmenu, a także będzie mieć element w menuExtras Szyk jak String trzymając nazwa ścieżki przedmiotu.

Pamiętaj, że powyższe informacje zostały zebrane w ramach macOS 10.13.5 .

user3439894
źródło
0

Ta preferencja jest kontrolowana przez plist w następującej ścieżce: ~/Library/Preferences/com.apple.scriptmenu.plist.

Który zawiera następujące (Kiedy wyłączone):

<?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>

The false jest zmieniony na true kiedy jest aktywowany.

Zmieniasz tę preferencję za pomocą defaults polecenie w bash.

defaults write com.apple.scriptmenu.plist ScriptMenuEnabled true

lub

defaults write com.apple.scriptmenu.plist ScriptMenuEnabled false

W AppleScript:

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

lub

do shell script "defaults write com.apple.scriptmenu.plist ScriptMenuEnabled false"
JBis
źródło
Widzę plik, ale działa w terminalu i do shell nie działa w locie. Nadal szukasz rozwiązania bez ponownego uruchomienia komputera.
ʀ2ᴅ2
1
W macOS 10.13.5 tak czy inaczej, ScriptMenuEnabled nie jest ważny klawisz w com.apple.scriptmenu.plist plik. Z tego co widzę są tylko dwa ważne klawiatura dla com.apple.scriptmenu.plist plik, PutAppScriptsFirst i ShowLibraryScripts.
user3439894
@ user3439894 Przetestowałem na Mojave, ale podejrzewam, że będzie taki sam dla wszystkich wersji.
JBis