osascript zum Festlegen des sekundären Desktop-Hintergrunds?

Ich habe dies verwendet:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST
1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
 <key>Label</key>
  <string>com.filmscoring.display.plist</string>
 <key>ProgramArguments</key>
  <array>
    <string>osascript</string>
    <string>-e</string>
    <string>tell application "Finder"
set f to POSIX file "/Library/Desktop Pictures/mac cinema desktop yoda.png"
if desktop picture is not file f then set desktop picture to f
end tell</string>
  </array>
 <key>StartInterval</key>
  <integer>10</integer>
</dict>
</plist>

Um zu verhindern, dass Benutzer den Desktop ändern. (Und ich liebe es übrigens!) Das Original ist hier zu finden: Wie schränke ich das Ändern des Desktop-Hintergrunds ein?

Alle unsere Stationen haben einen zweiten Bildschirm, den ich auf die gleiche Weise mit einem anderen Bild reparieren möchte.

Irgendeine Idee, wie ich mit diesem Code auf die sekundäre Anzeige zielen kann? Danke für die Hilfe!

System Events hat eine Desktop-Suite. (Im Applescript-Editor, Datei > Wörterbuch öffnen > Systemereignisse.app, dann auf Desktop Suite in der linken Spalte klicken) Wenn ich versuche, es zu verwenden, um die Bildeigenschaft von einem von ihnen abzurufen, erhalte ich "ungültige Schlüsselform"-Fehler. Dies könnte jedoch etwas sein, das nur auf meinem System passiert, also ist es wahrscheinlich einen Versuch wert. (Update: Es hat gerade angefangen zu funktionieren) Außerdem wäre es hilfreich, Ihre Version von OS X zu kennen.

Antworten (3)

Eine schnelle Google-Suche ergab den folgenden Code:

set tlst to {}
--set newtop to (path to home folder as string) & "Pictures:desktop pics folder:BigDipper 916.jpg" as alias -- sample line
set newtop to choose file


tell application "System Events"
   set tlst to a reference to every desktop
   --set picture of item 1 of tlst to newtop -- display 1
   set picture of item 2 of tlst to newtop -- display 2
end tell

Genommen von

http://macscripter.net/viewtopic.php?id=35840

Ich habe keinen zweiten Monitor, daher kann ich es nicht testen.

Ich hoffe es hilft.

Funktioniert auf macOS Big Sur

Für den Standardmonitor

osascript -e 'tell application "System Events" to set picture of current desktop to "<path-to-img>"'

Für den zweiten Monitor

osascript -e 'tell application "System Events" to set picture of second desktop to "<path-to-img>"'

Ich habe Folgendes verwendet (basierend auf der Antwort von @Vic)

    tell application "System Events"
        set tlst to a reference to every desktop
        set picture of item 2 of tlst to "/Users/jason/Documents/Personal/Me/moon.png"
    end tell

Ich kann überprüfen, ob es mit einem Zwei-Monitor-Setup (MacBookPro und externer Monitor) funktioniert.