¿Cómo obtener la ruta del fondo de pantalla en el escritorio activo mediante programación?

1

Estoy intentando obtener la ruta al fondo de pantalla en el escritorio activo. Sin embargo, estoy teniendo problemas para obtener esto de manera confiable.

Las siguientes fuentes indican que ~/Library/Application Support/Dock/desktoppicture.db es una base de datos sqlite con información sobre el fondo.

  • enlace
  • gist.github.com/gregneagle/6225747 (¿Puede alguien prefijar esto con http ? SE impide que publique más de 2 enlaces debido a mi baja reputación en este foro)

Sin embargo, estas fuentes establecen un nuevo fondo y no lo intentan para leer el contenido de la base de datos sqlite para el escritorio activo.

He volcado el contenido de este archivo en mi sistema y lo he cargado como una esencia en enlace .

Este archivo parece contener información sobre pantallas, y leer el último valor de data parece obtener el fondo de pantalla activo a veces .

  • ¿Hay alguna forma en que pueda usar desktoppicture.db para obtener el fondo de pantalla en el escritorio activo cada vez?
  • ¿Hay alguna otra forma en que pueda obtener una ruta al fondo de pantalla activo mediante programación?

Editar: forums.macrumors.com/showthread.php?t=1525299 (¿alguien puede agregar http?) es otra fuente de obtención de esta información con AppleScript, pero por alguna razón el siguiente fragmento de código devuelve Wave.jpg cuando Wave.jpg no es el fondo de pantalla activo.

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

Para aclarar, mi fondo de pantalla está configurado para alternar aleatoriamente a través de un directorio.

Intenté ejecutar el siguiente comando como se sugiere en las respuestas.

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

Sin embargo, en mi sistema, esto produce:

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,

que no incluye el fondo de pantalla del escritorio activo.

Deshabilité el ciclo de imagen al azar y

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

cambia mi fondo al fondo de pantalla de stock beach, y

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

ahora muestra picture:/Library/Desktop Pictures/Beach.jpg . Sin embargo, esto no es útil porque quiero conocer el fondo cuando estoy recorriendo un directorio al azar.

    
pregunta Brandon Amos 19.10.2014 - 09:18

1 respuesta

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

Ver todas las propiedades:

tell application "System Events" to get properties of every desktop
    
respondido por el fartheraway 19.10.2014 - 09:50

Lea otras preguntas en las etiquetas