AppleScript, чтобы найти изображение обоев не работает под Mac OS Mojave больше - PullRequest
0 голосов
/ 05 мая 2019

Раньше я использовал две надписи, чтобы узнать имя файла фактического изображения обоев с рабочего стола 1 и рабочего стола 2 (режим двух мониторов) под Mac OS High Sierra.Один скрипт для основного монитора и еще один для второго монитора.Под Mac OS Mojave все еще работает только скрипт для рабочего стола 1.Скрипт для рабочего стола 2 больше не работает.Пытался найти проблему, но не смог найти решение.Я не опытный писатель.Надеюсь, что кто-то может помочь.

Script1 для настольного компьютера 1 (основной монитор):

tell application "System Events"
    set posix_path to (pictures folder of desktop 1)
    set picPath to (POSIX file posix_path) as string
end tell
set thepictures to (do shell script "sqlite3 ~/Library/Application\\ Support/Dock/desktoppicture.db \"SELECT data.value FROM preferences INNER JOIN data on preferences.key=16 and preferences.picture_id=1 and preferences.data_id=data.ROWID\"")
set fullPath to picPath as string
set rotationImage to fullPath & thepictures
tell application "Finder"
    try
        set aliasItem to item rotationImage
        if class of aliasItem is alias file then
            reveal original item of aliasItem
        end if
    end try
end tell

Script2 для настольного компьютера 2 (второй монитор):

tell application "System Events"
    set posix_path to (pictures folder of desktop 2)
    set picPath to (POSIX file posix_path) as string
end tell
set thepictures to (do shell script "sqlite3 ~/Library/Application\\ Support/Dock/desktoppicture.db \"SELECT data.value FROM preferences INNER JOIN data on preferences.key=16 and preferences.picture_id=5 and preferences.data_id=data.ROWID\"")
set fullPath to picPath as string
set rotationImage to fullPath & thepictures
tell application "Finder"
    try
        set aliasItem to item rotationImage
        if class of aliasItem is alias file then
            reveal original item of aliasItem
        end if
    end try
end tell

Ожидаемый результатиз сценария в том, что искатель открывает окно, показывающее файл фактического изображения обоев.Он работает с script1, но не с script2

1 Ответ

0 голосов
/ 11 мая 2019

Я нашел проблему. Где-то между High Sierra и Mojave изменилось число preferences.picture_id для рабочего стола 2 для активного изображения обоев.

С Высокой Сьеррой id было preferences.picture_id=5, а при Мохаве это preferences.picture_id=7.

Может быть, это поможет кому-то еще.

...