2 votos

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

Estoy tratando de obtener la ruta del fondo de pantalla en el escritorio activo. Sin embargo, estoy teniendo problemas para conseguir esto de forma fiable.

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

Sin embargo, estas fuentes establecen un nuevo fondo y no intentan 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 subido como un gist en https://gist.github.com/bamos/6c5fb63ec1d9b8dc9205 .

Este archivo parece contener información sobre las pantallas y la lectura del último valor de data parece conseguir el fondo de pantalla activo a veces .

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

Edición: forums.macrumors.com/showthread.php?t=1525299 (¿puede alguien añadir http?) es otra fuente de obtener esta información con AppleScript, pero por alguna razón el siguiente fragmento 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 recorrer aleatoriamente un directorio.


He intentado 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 sale:

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.

He desactivado el ciclo de imágenes aleatorias y

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

cambia mi fondo de pantalla por el de la playa, 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 obtener el fondo cuando estoy recorriendo aleatoriamente un directorio.

2voto

Tim Brigham Puntos 8727
tell application "System Events" to picture of desktop 1

Ver todas las propiedades:

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X