Wie erhalte ich programmgesteuert den Pfad zum Hintergrundbild auf dem aktiven Desktop?

1

Ich versuche, den Pfad zum Hintergrundbild auf dem aktiven Desktop zu ermitteln. Ich habe jedoch Probleme, dies zuverlässig zu bekommen.

Die folgenden Quellen weisen darauf hin ~/Library/Application Support/Dock/desktoppicture.db ist eine SQLite-Datenbank mit Informationen zum Hintergrund.

Diese Quellen legen jedoch einen neuen Hintergrund fest und versuchen es nicht um den Inhalt der SQLite-Datenbank für den aktiven Desktop zu lesen.

Ich habe den Inhalt dieser Datei auf meinem System gespeichert und hochgeladen es als Kernstück an https://gist.github.com/bamos/6c5fb63ec1d9b8dc9205 .

Diese Datei scheint Informationen über Displays zu enthalten, und Lesen des letzten Wertes von data scheint das aktive Hintergrundbild zu bekommen manchmal .

  • Gibt es eine Möglichkeit, die ich nutzen kann? desktoppicture.db bekomme ich das Hintergrundbild jedes Mal auf den aktiven Desktop?
  • Gibt es eine andere Möglichkeit, programmgesteuert einen Pfad zum aktiven Hintergrundbild abzurufen?

Edit: forums.macrumors.com/showthread.php?t=1525299 (kann jemand http hinzufügen?) Ist eine andere Quelle für diese Informationen mit AppleScript, aber aus irgendeinem Grund Das folgende Snippet kehrt zurück Wave.jpg wann Wave.jpg ist nicht das aktives Hintergrundbild.

tell application "Finder"
    set theDesktopPic to desktop picture
    set theName to displayed name of theDesktopPic
    display dialog theName
end tell

Zur Verdeutlichung ist mein Hintergrundbild so eingestellt, dass es nach dem Zufallsprinzip durchläuft ein Verzeichnis.


Ich habe versucht, den folgenden Befehl auszuführen, wie in den Antworten vorgeschlagen.

tell application "System Events" to get properties of every desktop

Auf meinem System gibt dies jedoch Folgendes aus:

display name:Color LCD, change interval:1800.0, id:69731840, random order:true, picture rotation:1, pictures folder:/Users/bamos/Pictures/wallpaper/nature, picture:/Library/Desktop Pictures/Wave.jpg, translucent menu bar:missing value, class:desktop,

Das Hintergrundbild des aktiven Desktops ist nicht enthalten.

Ich habe das Zufallsbild-Radfahren und deaktiviert

osascript -e 'tell application "Finder" to set desktop picture to {"Macintosh HD:Library:Desktop Pictures:Beach.jpg"} as alias'

ändere meinen Hintergrund in das Hintergrundbild "stock beach" und

osascript -e 'tell application "System Events" to get properties of every desktop'

jetzt zeigt picture:/Library/Desktop Pictures/Beach.jpg. Dies ist jedoch nicht hilfreich, da ich den Hintergrund erhalten möchte, wenn ich zufällig durch ein Verzeichnis fahre.

Brandon Amos
quelle

Antworten:

2
tell application "System Events" to picture of desktop 1

Alle Immobilien anzeigen:

tell application "System Events" to get properties of every desktop
fartheraway
quelle
Kannst du bitte das Debuggen dazu nehmen dieser Chatraum - Ich habe dafür gesorgt, dass @highphi Zugriff hat. Vielen Dank!
Ian C.