AppleScript - Отримати кожен робочий стіл, включаючи приховані робочі місця управління місіями


0

Я намагаюся написати простий скрипт, який змінить моє тло робочого стола відразу на всі мої робочі столи / робочі області. Зараз у мене є:

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

Це призведе до зміни шпалер на обох моніторах для робочого столу, що є видимим, але не змінює шпалери на всіх прихованих настільних комп'ютерах у програмі Mission Control (наприклад, на робочих столах 2-4). Чи є спосіб змінити це, щоб здійснити на всіх робочих столах?

Відповіді:


1

Наступне - це початок, поки я не зрозумію, як прочитати кількість робочого столу в програмі Mission Control. Зараз для того, щоб це працювало, ви повинні бути на самій лівій стільниці.

Не знаючи, де знаходиться ваша фотографія, я націлюю зображення на Desktop Pictures:

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

end repeat

Я використовую код ключа для переміщення праворуч controlлише тоді, коли кількість перевищує 1 і затримка:

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

Потім я посилаюся на кожен робочий стіл і додаю затримку для встановленого зображення:

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

повний код:

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

це один із способів зробити цю надію, що це допоможе. Це працює і було протестовано за допомогою macOS High Sierra 10.13.6

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.