1

デスクトップ画像をハード ドライブのフォルダ内のランダムな画像に変更できるようにする AppleScript を作成しようとしています。

tell application "Finder"
    set desktopPictures to folder "Path:To:Desktop:Pictures:"
set fileList to name of every file of desktopPictures
set theNum to random number from 1 to (count fileList) with seed ((time of (current date)) * 4)
set fileName to item theNum of fileList
set desktop picture to file fileName in desktopPictures
end tell

これまでのところ、完全に機能しています。唯一の問題は、別のモニターを接続したときに、彼のデスクトップ画像が変更されないことです。Web検索で見つけた次のコードでこの問題を解決しようとしました

tell application "Finder"
    set desktopPictures to folder "Path:To:Desktop:Pictures:"
    set fileList to name of every file of desktopPictures
    set theDesktops to a reference to every desktop 
    repeat with aDesktop in theDesktops
        set theNum to random number from 1 to (count fileList) with seed ((time of (current date)) * 4)
        set fileName to item theNum of fileList
        set picture of aDesktop to file fileName in desktopPictures
    end repeat
end tell

しかし、次のような構文エラーが発生するため、このコードはコンパイルされません。

Expected class name but found property.desktop行 4 でハイライト 表示

4

1 に答える 1

1

見つけたコードから、tell アプリケーションの「System Events」ブロックを省略しました。

Applescript では、特定のアプリケーションの辞書にいくつかのコマンドが存在し、'tell application' ブロックで参照する必要があります。この場合、「すべてのデスクトップ」呼び出しは「システム イベント」アプリにあります。

これを試して。

tell application "Finder"
    set desktopPictures to folder "Path:To:Desktop:Pictures:"
    set fileList to name of every file of desktopPictures
    tell application "System Events"
        set theDesktops to a reference to every desktop
    end tell
    repeat with aDesktop in theDesktops
        set theNum to random number from 1 to (count fileList) with seed ((time of (current date)) * 4)
        set fileName to item theNum of fileList
        set picture of aDesktop to file fileName in desktopPictures
    end repeat
end tell
于 2013-09-09T21:23:21.520 に答える