1 votes

AppleScript - Obtenez tous les bureaux, y compris les bureaux cachés de Mission Control.

J'essaie d'écrire un simple script qui changera mon fond d'écran sur tous mes bureaux/espaces de travail à la fois. Actuellement, j'ai ceci :

tell application "System Events"
    tell every desktop
        set picture to "image.png"
    end tell
end tell

Cela changera le fond d'écran sur mes deux moniteurs pour le bureau qui est visible, mais ne changera pas le fond d'écran sur tous les bureaux "cachés" dans Mission Control (Bureaux 2-4 par exemple). Existe-t-il un moyen de modifier cette opération pour qu'elle s'applique à tous des ordinateurs de bureau ?

1voto

ʀ2ᴅ2 Points 996

Ce qui suit est un début jusqu'à ce que je comprenne comment lire le nombre de bureaux dans Mission Control. Actuellement, pour que cela fonctionne, vous devez être sur le bureau le plus à gauche.

Ne sachant pas où se trouve votre image, je vise une image en Desktop Pictures avec :

set thePic to file ((path to library folder from local domain as text) & "Desktop Pictures:Blue Pond.jpg") as text

J'ai défini une variable pour le nombre de bureaux de contrôle de mission :

set windowCount to 5

Je construis une boucle de répétition en commençant par le premier nombre jusqu'à ce qu'il atteigne le compte :

repeat with X from 1 to windowCount

end repeat

J'utilise le code clé pour aller à droite avec control uniquement lorsque le compte est supérieur à 1 et un délai :

repeat with X from 1 to windowCount
    tell application "Finder"
        tell application "System Events"
            if X > 1 then
                key code 124 using control down ## move right
                delay 1
            end if
        end tell
    end tell
end repeat

Je référence ensuite chaque bureau et ajoute un délai sur l'image à régler :

tell application "System Events"
    set deskGroup to (a reference to every desktop)
    repeat with theDesk in deskGroup
        set picture of theDesk to thePic
    end repeat
end tell
delay 1

le code complet :

set thePic to file ((path to library folder from local domain as text) & "Desktop Pictures:Blue Pond.jpg") as text
set windowCount to 5
repeat with X from 1 to windowCount
    tell application "Finder"
        tell application "System Events"
            if X > 1 then
                key code 124 using control down ## move right
                delay 1
            end if
            set deskGroup to (a reference to every desktop)
            repeat with theDesk in deskGroup
                set picture of theDesk to thePic
            end repeat
        end tell
        delay 1
    end tell
end repeat

Voici une façon de procéder, j'espère que cela vous aidera. Cette méthode fonctionne et a été testée sous MacOS High Sierra 10.13.6.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X