Desktop

[Desktop]デスクトップのポジションの保存と復帰 (ファイルやフォルダの移動に対応)





ダウンロード - savedesktopv2.zip




デスクトップのポジションを保存
AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003# デスクトップポジション保存 v2
004(*
005APFS以外の外部ドライブ
006クラウドストレージ への移動はサポートしていません
007基本的にはローカルディスク内での移動を戻すだけです
008*)
009#com.cocolog-nifty.quicktimer.icefloe
010----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
011use AppleScript version "2.8"
012use framework "Foundation"
013use framework "AppKit"
014use scripting additions
015
016property refMe : a reference to current application
017
018########################################
019####前処理 ファイルとパス
020########################################
021set appFileManager to refMe's NSFileManager's defaultManager()
022##設定ファイル保存先
023set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSApplicationSupportDirectory) inDomains:(refMe's NSUserDomainMask))
024set ocidApplicatioocidupportDirPathURL to ocidURLsArray's firstObject()
025set ocidSaveDirPathURL to ocidApplicatioocidupportDirPathURL's URLByAppendingPathComponent:("com.cocolog-nifty.quicktimer/Desktop PositionV2") isDirectory:(true)
026#フォルダの有無チェック
027set ocidSaveDirPath to ocidSaveDirPathURL's |path|()
028set boolDirExists to appFileManager's fileExistsAtPath:(ocidSaveDirPath) isDirectory:(true)
029if boolDirExists = true then
030  log "すでにフォルダはあります"
031else if boolDirExists = false then
032  log "フォルダが無いのでつくります"
033  set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
034  ocidAttrDict's setValue:(448) forKey:(refMe's NSFilePosixPermissions)
035  set listDone to appFileManager's createDirectoryAtURL:(ocidSaveDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference)
036  if (item 2 of listDone) ≠ (missing value) then
037    log (item 2 of listDone)'s localizedDescription() as text
038    return "フォルダ作成でエラーしました"
039  end if
040end if
041#設定ファイルの有無チェック
042set ocidPlistPathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:("com.apple.finder.desktoppositionV2.plist") isDirectory:(false)
043set ocidPlistPath to ocidPlistPathURL's |path|()
044set boolDirExists to appFileManager's fileExistsAtPath:(ocidPlistPath) isDirectory:(false)
045if boolDirExists = true then
046  log "ファイルがあります"
047else if boolDirExists = false then
048  log "ファイルが無いので空のPLISTを作っておきます"
049  #空のDICT
050  set ocidBlankDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:(0)
051  #キーアーカイブ形式で保存する
052  set listResponse to refMe's NSKeyedArchiver's archivedDataWithRootObject:(ocidBlankDict) requiringSecureCoding:(false) |error| :(reference)
053  set ocidSfl3Data to (item 1 of listResponse)
054  if (item 2 of listResponse) ≠ (missing value) then
055    log (item 2 of listDone)'s localizedDescription() as text
056    return "アーカイブに失敗しました"
057  end if
058  #保存
059  set listDone to ocidSfl3Data's writeToURL:(ocidPlistPathURL) options:0  |error| :(reference)
060  if (item 2 of listDone) ≠ (missing value) then
061    log (item 2 of listDone)'s localizedDescription() as text
062    return "ファイルの保存に失敗しました"
063  end if
064end if
065########################################
066####ポジションファイルバックアップ
067########################################
068set strDateNO to doGetNextDateNo({"yyyyMMddhhmmss", 1}) as string
069set strBackupFileName to ("com.apple.finder.desktopposition." & strDateNO & ".plist")
070set ocidBackUpPathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:(strBackupFileName) isDirectory:(false)
071
072set appFileManager to refMe's NSFileManager's defaultManager()
073set listDone to (appFileManager's copyItemAtURL:(ocidPlistPathURL) toURL:(ocidBackUpPathURL) |error| :(reference))
074
075
076########################################
077####ポジション収集
078########################################
079#ポジションを格納するArray
080set ocidPositionArray to (refMe's NSMutableArray's alloc()'s initWithCapacity:(0))
081#ブックマーク用のキーリスト
082set ocidKeysArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
083ocidKeysArray's addObject:(refMe's NSURLPathKey)
084ocidKeysArray's addObject:(refMe's NSURLFileResourceIdentifierKey)
085ocidKeysArray's addObject:(refMe's NSURLVolumeIdentifierKey)
086
087#ボジションの収集
088tell application "Finder"
089  repeat with itemDesktopItem in desktop
090    tell itemDesktopItem
091      #格納するキー
092      set strKey to (name) as text
093      #格納する値
094      set listPosition to (desktop position) as list
095      set strURL to (URL) as text
096    end tell
097    ##ブックマークを取得して
098    set ocidItemURL to (refMe's NSURL's URLWithString:(strURL))
099    set listDone to (ocidItemURL's bookmarkDataWithOptions:(refMe's NSURLBookmarkCreationSuitableForBookmarkFile) includingResourceValuesForKeys:(ocidKeysArray) relativeToURL:(missing value) |error| :(specifier))
100    set ocdiBookMarkData to (item 1 of listDone)
101    #格納用のDICTに格納していく
102    set ocidSetValueDict to (refMe's NSMutableDictionary's alloc()'s initWithCapacity:(0))
103    (ocidSetValueDict's setObject:(strKey) forKey:("name"))
104    (ocidSetValueDict's setObject:(listPosition) forKey:("desktop position"))
105    (ocidSetValueDict's setObject:(ocidItemURL) forKey:("URL"))
106    (ocidSetValueDict's setObject:(ocdiBookMarkData) forKey:("BookMark"))
107    #Arrayにセット
108    (ocidPositionArray's addObject:(ocidSetValueDict))
109  end repeat
110end tell
111set ocidSaveDict to (refMe's NSMutableDictionary's alloc()'s initWithCapacity:(0))
112ocidSaveDict's setObject:(ocidPositionArray) forKey:("DesktopItems")
113########################################
114####保存
115########################################
116#キーアーカイブ形式で保存する
117set listResponse to refMe's NSKeyedArchiver's archivedDataWithRootObject:(ocidSaveDict) requiringSecureCoding:(false) |error| :(reference)
118set ocidSfl3Data to (item 1 of listResponse)
119if (item 2 of listResponse) ≠ (missing value) then
120  log (item 2 of listDone)'s localizedDescription() as text
121  return "アーカイブに失敗しました"
122end if
123#保存
124set listDone to ocidSfl3Data's writeToURL:(ocidPlistPathURL) options:0  |error| :(reference)
125if (item 2 of listDone) ≠ (missing value) then
126  log (item 2 of listDone)'s localizedDescription() as text
127  return "ファイルの保存に失敗しました"
128end if
129
130return "ポジションを保存しました"
131
132
133
134
135################################
136# 明日の日付 doGetDateNo(argDateFormat,argCalendarNO)
137# argCalendarNO 1 NSCalendarIdentifierGregorian 西暦
138# argCalendarNO 2 NSCalendarIdentifierJapanese 和暦
139################################
140to doGetNextDateNo({argDateFormat, argCalendarNO})
141  ##渡された値をテキストで確定させて
142  set strDateFormat to argDateFormat as text
143  set intCalendarNO to argCalendarNO as integer
144  ###日付情報の取得
145  set ocidDate to current application's NSDate's |date|()
146  set ocidIntervalt to current application's NSDate's dateWithTimeIntervalSinceNow:(86400)
147  ###日付のフォーマットを定義(日本語)
148  set ocidFormatterJP to current application's NSDateFormatter's alloc()'s init()
149  ###和暦 西暦 カレンダー分岐
150  if intCalendarNO = 1 then
151    set ocidCalendarID to (current application's NSCalendarIdentifierGregorian)
152  else if intCalendarNO = 2 then
153    set ocidCalendarID to (current application's NSCalendarIdentifierJapanese)
154  else
155    set ocidCalendarID to (current application's NSCalendarIdentifierISO8601)
156  end if
157  set ocidCalendarJP to current application's NSCalendar's alloc()'s initWithCalendarIdentifier:(ocidCalendarID)
158  set ocidTimezoneJP to current application's NSTimeZone's alloc()'s initWithName:("Asia/Tokyo")
159  set ocidLocaleJP to current application's NSLocale's alloc()'s initWithLocaleIdentifier:("ja_JP_POSIX")
160  ###設定
161  ocidFormatterJP's setTimeZone:(ocidTimezoneJP)
162  ocidFormatterJP's setLocale:(ocidLocaleJP)
163  ocidFormatterJP's setCalendar:(ocidCalendarJP)
164  # ocidFormatterJP's setDateStyle:(current application's NSDateFormatterNoStyle)
165  # ocidFormatterJP's setDateStyle:(current application's NSDateFormatterShortStyle)
166  # ocidFormatterJP's setDateStyle:(current application's NSDateFormatterMediumStyle)
167  # ocidFormatterJP's setDateStyle:(current application's NSDateFormatterLongStyle)
168  ocidFormatterJP's setDateStyle:(current application's NSDateFormatterFullStyle)
169  ###渡された値でフォーマット定義
170  ocidFormatterJP's setDateFormat:(strDateFormat)
171  ###フォーマット適応
172  set ocidDateAndTime to ocidFormatterJP's stringFromDate:(ocidIntervalt)
173  ###テキストで戻す
174  set strDateAndTime to ocidDateAndTime as text
175  return strDateAndTime
176end doGetNextDateNo
177return
AppleScriptで生成しました

デスクトップを復帰
AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003# デスクトップポジション復帰 v2
004(*
005APFS以外の外部ドライブ
006クラウドストレージ への移動はサポートしていません
007基本的にはローカルディスク内での移動を戻すだけです
008*)
009#com.cocolog-nifty.quicktimer.icefloe
010----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
011use AppleScript version "2.8"
012use framework "Foundation"
013use framework "AppKit"
014use scripting additions
015
016property refMe : a reference to current application
017
018########################################
019####前処理 ファイルとパス
020########################################
021set appFileManager to refMe's NSFileManager's defaultManager()
022##設定ファイル保存先
023set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSApplicationSupportDirectory) inDomains:(refMe's NSUserDomainMask))
024set ocidApplicatioocidupportDirPathURL to ocidURLsArray's firstObject()
025set ocidSaveDirPathURL to ocidApplicatioocidupportDirPathURL's URLByAppendingPathComponent:("com.cocolog-nifty.quicktimer/Desktop PositionV2") isDirectory:(true)
026#設定ファイルの有無チェック
027set ocidPlistPathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:("com.apple.finder.desktoppositionV2.plist") isDirectory:(false)
028set ocidPlistPath to ocidPlistPathURL's |path|()
029set boolDirExists to appFileManager's fileExistsAtPath:(ocidPlistPath) isDirectory:(true)
030if boolDirExists = true then
031  # log "ファイルがあります"
032else if boolDirExists = false then
033  log "ファイルが無いので処理を終了します"
034  return "ファイルが無いので処理を終了します"
035end if
036##処理に必要なのでデスクトップのURLを生成しておく
037set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
038set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
039
040########################################
041####PLIST読み込み
042########################################
043#データ読み込み DATAとして読み込む
044set ocidOption to (refMe's NSDataReadingMappedIfSafe)
045set listResponse to (refMe's NSData's dataWithContentsOfURL:(ocidPlistPathURL) options:(ocidOption) |error| :(reference))
046if (item 2 of listResponse) ≠ (missing value) then
047  log (item 2 of listResponse)'s localizedDescription() as text
048  return "ファイルのデータ読み込みに失敗しました"
049else if (item 2 of listResponse) = (missing value) then
050  set ocidPlistData to (item 1 of listResponse)
051end if
052#DATAを解凍する
053set ocidClassListArray to (refMe's NSMutableArray's alloc()'s initWithCapacity:(0))
054(ocidClassListArray's addObject:(refMe's NSDictionary))
055(ocidClassListArray's addObject:(refMe's NSMutableDictionary))
056(ocidClassListArray's addObject:(refMe's NSArray))
057(ocidClassListArray's addObject:(refMe's NSMutableArray))
058(ocidClassListArray's addObject:(refMe's NSObject's classForCoder))
059(ocidClassListArray's addObject:(refMe's NSObject's classForKeyedArchiver))
060(ocidClassListArray's addObject:(refMe's NSObject's classForKeyedUnarchiver))
061#クラスセット
062set ocidSetClass to refMe's NSSet's alloc()'s initWithArray:(ocidClassListArray)
063#解凍
064set listResponse to refMe's NSKeyedUnarchiver's unarchivedObjectOfClasses:(ocidSetClass) fromData:(ocidPlistData) |error| :(reference)
065if (item 2 of listResponse) ≠ (missing value) then
066  log (item 2 of listResponse)'s localizedDescription() as text
067  return "データをPLISTに解凍するのに失敗しました"
068else if (item 2 of listResponse) = (missing value) then
069  set ocidPlistDict to (item 1 of listResponse)
070end if
071########################################
072####ポジションデータの処理
073########################################
074set boolMiisngValue to (missing value)
075#Array取り出し
076set ocidPositionArray to ocidPlistDict's objectForKey:("DesktopItems")
077repeat with itemArray in ocidPositionArray
078  set ocidSetValueDict to itemArray
079  set listPosition to (ocidSetValueDict's valueForKey:("desktop position")) as list
080  set strKey to (ocidSetValueDict's valueForKey:("name")) as text
081  ##URL
082  set ocidOriginalURL to (ocidSetValueDict's objectForKey:("URL"))
083  set ocidOriginalFilePath to ocidOriginalURL's |path|()
084  ##BOOKMARKデータをURLにする
085  set ocdiBookMarkData to (ocidSetValueDict's objectForKey:("BookMark"))
086  set listResponse to (refMe's NSURL's URLByResolvingBookmarkData:(ocdiBookMarkData) options:(refMe's NSURLBookmarkResolutionWithoutUI) relativeToURL:(missing value) bookmarkDataIsStale:(missing value) |error| :(reference))
087  set ocidBookMarkURL to (item 1 of listResponse)
088  ###移動先判定開始▼
089  if ocidBookMarkURL = (missing value) then
090    #ブックマークが参照できない状態かゴミ箱に入れて消去済み=処理対象外
091    set strMes to (strKey & "は、すでに消去されか?\r外部ドライブにあります\r処理しません") as text
092    display alert strMes buttons {"OK", "中断"} default button "OK" cancel button "中断" as informational giving up after 2
093    #処理するか?のBOOL
094    set boolChkWork to false as boolean
095    set boolMiisngValue to true as boolean
096  else
097    #ブックマークが参照可能な状態
098    set ocidBookMarkPath to ocidBookMarkURL's |path|()
099    ##URLとBOOKマークデータの相違を確認
100    set boolSameURL to (ocidOriginalURL's isEqual:(ocidBookMarkURL)) as boolean
101    if boolSameURL is true then
102      ##移動していない=処理対象
103      #処理するか?のBOOL
104      set boolChkWork to true as boolean
105    else
106      ##移動している
107      if (ocidBookMarkPath as text) contains "/.Trash/" then
108        ##今ゴミ箱にあります
109        set strMes to (strKey & "は、今ゴミ箱にあります戻しますか?") as text
110        set recordResponse to (display alert strMes buttons {"戻さない", "戻す", "中断"} default button "戻さない" cancel button "中断" as informational giving up after 5) as record
111        set strBottonName to (button returned of recordResponse) as text
112        if "戻す" is equal to (strBottonName) then
113          #戻す=処理対象
114          #処理するか?のBOOL
115          set boolChkWork to true as boolean
116          set listDone to (appFileManager's moveItemAtURL:(ocidBookMarkURL) toURL:(ocidOriginalURL) |error| :(reference))
117          if (item 1 of listDone) is false then
118            set strMes to (strKey & "移動に失敗しました") as text
119            display alert strMes buttons {"OK", "中断"} default button "OK" cancel button "中断" as informational giving up after 2
120          end if
121        else if "戻さない" is equal to (strBottonName) then
122          #戻さない=処理対象外
123          #処理するか?のBOOL
124          set boolChkWork to false as boolean
125        end if
126      else
127        set boolChkWork to true as boolean
128        set listDone to (appFileManager's moveItemAtURL:(ocidBookMarkURL) toURL:(ocidOriginalURL) |error| :(reference))
129        if (item 1 of listDone) is false then
130          set strMes to (strKey & "移動に失敗しました") as text
131          display alert strMes buttons {"OK", "中断"} default button "OK" cancel button "中断" as informational giving up after 2
132        end if
133      end if
134    end if
135  end if
136  log strKey
137  
138  if boolChkWork is true then
139    set aliasOriginalPath to (ocidOriginalURL's absoluteURL()) as alias
140    tell application "Finder"
141      set desktop position of item strKey to listPosition
142    end tell
143  end if
144  
145end repeat
146
147
148if boolMiisngValue is true then
149  set strMes to "保存したポジション情報が古くなっています更新してください"
150  display alert strMes as informational giving up after 2
151  return "保存したポジション情報が古くなっています更新してください"
152else
153  return "処理終了"
154end if
155
156
AppleScriptで生成しました

ファイルを選んで復帰
AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003# デスクトップポジション復帰 v2
004(*
005APFS以外の外部ドライブ
006クラウドストレージ への移動はサポートしていません
007基本的にはローカルディスク内での移動を戻すだけです
008*)
009#com.cocolog-nifty.quicktimer.icefloe
010----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
011use AppleScript version "2.8"
012use framework "Foundation"
013use framework "AppKit"
014use scripting additions
015
016property refMe : a reference to current application
017
018########################################
019####前処理 ファイルとパス
020########################################
021set appFileManager to refMe's NSFileManager's defaultManager()
022##設定ファイル保存先
023set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSApplicationSupportDirectory) inDomains:(refMe's NSUserDomainMask))
024set ocidApplicatioocidupportDirPathURL to ocidURLsArray's firstObject()
025set ocidSaveDirPathURL to ocidApplicatioocidupportDirPathURL's URLByAppendingPathComponent:("com.cocolog-nifty.quicktimer/Desktop PositionV2") isDirectory:(true)
026set aliasDefaultLocation to (ocidSaveDirPathURL's absoluteURL()) as alias
027#############################
028###ダイアログを前面に出す
029set strName to (name of current application) as text
030if strName is "osascript" then
031  tell application "Finder" to activate
032else
033  tell current application to activate
034end if
035
036set listUTI to {"com.apple.property-list"} as list
037set strMes to ("ファイルを選んでください") as text
038set strPrompt to ("ファイルを選んでください") as text
039try
040  ### ファイル選択時
041  set aliasFilePath to (choose file strMes with prompt strPrompt default location (aliasDefaultLocation) of type listUTI with invisibles and showing package contents without multiple selections allowed) as alias
042on error
043  log "エラーしました"
044  return "エラーしました"
045end try
046set strFilePath to (POSIX path of aliasFilePath) as text
047set ocidFilePathStr to refMe's NSString's stringWithString:(strFilePath)
048set ocidFilePath to ocidFilePathStr's stringByStandardizingPath()
049set ocidPlistPathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidFilePath) isDirectory:false)
050
051#設定ファイルの有無チェック
052
053set ocidPlistPath to ocidPlistPathURL's |path|()
054set boolDirExists to appFileManager's fileExistsAtPath:(ocidPlistPath) isDirectory:(true)
055if boolDirExists = true then
056  # log "ファイルがあります"
057else if boolDirExists = false then
058  log "ファイルが無いので処理を終了します"
059  return "ファイルが無いので処理を終了します"
060end if
061##処理に必要なのでデスクトップのURLを生成しておく
062set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
063set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
064
065########################################
066####PLIST読み込み
067########################################
068#データ読み込み DATAとして読み込む
069set ocidOption to (refMe's NSDataReadingMappedIfSafe)
070set listResponse to (refMe's NSData's dataWithContentsOfURL:(ocidPlistPathURL) options:(ocidOption) |error| :(reference))
071if (item 2 of listResponse) ≠ (missing value) then
072  log (item 2 of listResponse)'s localizedDescription() as text
073  return "ファイルのデータ読み込みに失敗しました"
074else if (item 2 of listResponse) = (missing value) then
075  set ocidPlistData to (item 1 of listResponse)
076end if
077#DATAを解凍する
078set ocidClassListArray to (refMe's NSMutableArray's alloc()'s initWithCapacity:(0))
079(ocidClassListArray's addObject:(refMe's NSDictionary))
080(ocidClassListArray's addObject:(refMe's NSMutableDictionary))
081(ocidClassListArray's addObject:(refMe's NSArray))
082(ocidClassListArray's addObject:(refMe's NSMutableArray))
083(ocidClassListArray's addObject:(refMe's NSObject's classForCoder))
084(ocidClassListArray's addObject:(refMe's NSObject's classForKeyedArchiver))
085(ocidClassListArray's addObject:(refMe's NSObject's classForKeyedUnarchiver))
086#クラスセット
087set ocidSetClass to refMe's NSSet's alloc()'s initWithArray:(ocidClassListArray)
088#解凍
089set listResponse to refMe's NSKeyedUnarchiver's unarchivedObjectOfClasses:(ocidSetClass) fromData:(ocidPlistData) |error| :(reference)
090if (item 2 of listResponse) ≠ (missing value) then
091  log (item 2 of listResponse)'s localizedDescription() as text
092  return "データをPLISTに解凍するのに失敗しました"
093else if (item 2 of listResponse) = (missing value) then
094  set ocidPlistDict to (item 1 of listResponse)
095end if
096########################################
097####ポジションデータの処理
098########################################
099set boolMiisngValue to (missing value)
100#Array取り出し
101set ocidPositionArray to ocidPlistDict's objectForKey:("DesktopItems")
102repeat with itemArray in ocidPositionArray
103  set ocidSetValueDict to itemArray
104  set listPosition to (ocidSetValueDict's valueForKey:("desktop position")) as list
105  set strKey to (ocidSetValueDict's valueForKey:("name")) as text
106  ##URL
107  set ocidOriginalURL to (ocidSetValueDict's objectForKey:("URL"))
108  set ocidOriginalFilePath to ocidOriginalURL's |path|()
109  ##BOOKMARKデータをURLにする
110  set ocdiBookMarkData to (ocidSetValueDict's objectForKey:("BookMark"))
111  set listResponse to (refMe's NSURL's URLByResolvingBookmarkData:(ocdiBookMarkData) options:(refMe's NSURLBookmarkResolutionWithoutUI) relativeToURL:(missing value) bookmarkDataIsStale:(missing value) |error| :(reference))
112  set ocidBookMarkURL to (item 1 of listResponse)
113  ###移動先判定開始▼
114  if ocidBookMarkURL = (missing value) then
115    #ブックマークが参照できない状態かゴミ箱に入れて消去済み=処理対象外
116    set strMes to (strKey & "は、すでに消去されか?\r外部ドライブにあります\r処理しません") as text
117    display alert strMes buttons {"OK", "中断"} default button "OK" cancel button "中断" as informational giving up after 2
118    #処理するか?のBOOL
119    set boolChkWork to false as boolean
120    set boolMiisngValue to true as boolean
121  else
122    #ブックマークが参照可能な状態
123    set ocidBookMarkPath to ocidBookMarkURL's |path|()
124    ##URLとBOOKマークデータの相違を確認
125    set boolSameURL to (ocidOriginalURL's isEqual:(ocidBookMarkURL)) as boolean
126    if boolSameURL is true then
127      ##移動していない=処理対象
128      #処理するか?のBOOL
129      set boolChkWork to true as boolean
130    else
131      ##移動している
132      if (ocidBookMarkPath as text) contains "/.Trash/" then
133        ##今ゴミ箱にあります
134        set strMes to (strKey & "は、今ゴミ箱にあります戻しますか?") as text
135        set recordResponse to (display alert strMes buttons {"戻さない", "戻す", "中断"} default button "戻さない" cancel button "中断" as informational giving up after 5) as record
136        set strBottonName to (button returned of recordResponse) as text
137        if "戻す" is equal to (strBottonName) then
138          #戻す=処理対象
139          #処理するか?のBOOL
140          set boolChkWork to true as boolean
141          set listDone to (appFileManager's moveItemAtURL:(ocidBookMarkURL) toURL:(ocidOriginalURL) |error| :(reference))
142          if (item 1 of listDone) is false then
143            set strMes to (strKey & "移動に失敗しました") as text
144            display alert strMes buttons {"OK", "中断"} default button "OK" cancel button "中断" as informational giving up after 2
145          end if
146        else if "戻さない" is equal to (strBottonName) then
147          #戻さない=処理対象外
148          #処理するか?のBOOL
149          set boolChkWork to false as boolean
150        end if
151      else
152        set boolChkWork to true as boolean
153        set listDone to (appFileManager's moveItemAtURL:(ocidBookMarkURL) toURL:(ocidOriginalURL) |error| :(reference))
154        if (item 1 of listDone) is false then
155          set strMes to (strKey & "移動に失敗しました") as text
156          display alert strMes buttons {"OK", "中断"} default button "OK" cancel button "中断" as informational giving up after 2
157        end if
158      end if
159    end if
160  end if
161  log strKey
162  
163  if boolChkWork is true then
164    set aliasOriginalPath to (ocidOriginalURL's absoluteURL()) as alias
165    tell application "Finder"
166      set desktop position of item strKey to listPosition
167    end tell
168  end if
169  
170end repeat
171
172
173if boolMiisngValue is true then
174  set strMes to "保存したポジション情報が古くなっています更新してください"
175  display alert strMes as informational giving up after 2
176  return "保存したポジション情報が古くなっています更新してください"
177else
178  return "処理終了"
179end if
180
AppleScriptで生成しました

|

[Desktop]デスクトップのアイコンの位置を保存しておいて、あとで戻す

ダウンロード - savedesktopposition.zip


あくまでも参考にしてください

【スクリプトエディタで開く】 |

サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003# デスクトップポジション保存
004#com.cocolog-nifty.quicktimer.icefloe
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006use AppleScript version "2.8"
007use framework "Foundation"
008use framework "AppKit"
009use scripting additions
010
011property refMe : a reference to current application
012
013########################################
014####前処理 ファイルとパス
015########################################
016set appFileManager to refMe's NSFileManager's defaultManager()
017##設定ファイル保存先
018set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSApplicationSupportDirectory) inDomains:(refMe's NSUserDomainMask))
019set ocidApplicatioocidupportDirPathURL to ocidURLsArray's firstObject()
020set ocidSaveDirPathURL to ocidApplicatioocidupportDirPathURL's URLByAppendingPathComponent:("com.cocolog-nifty.quicktimer/Desktop Position") isDirectory:(true)
021#フォルダの有無チェック
022set ocidSaveDirPath to ocidSaveDirPathURL's |path|()
023set boolDirExists to appFileManager's fileExistsAtPath:(ocidSaveDirPath) isDirectory:(true)
024if boolDirExists = true then
025  log "すでにフォルダはあります"
026else if boolDirExists = false then
027  log "フォルダが無いのでつくります"
028  set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
029  ocidAttrDict's setValue:(448) forKey:(refMe's NSFilePosixPermissions)
030  set listDone to appFileManager's createDirectoryAtURL:(ocidSaveDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference)
031  if (item 2 of listDone) ≠ (missing value) then
032    log (item 2 of listDone)'s localizedDescription() as text
033    return "フォルダ作成でエラーしました"
034  end if
035end if
036#設定ファイルの有無チェック
037set ocidPlistPathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:("com.apple.finder.desktopposition.plist") isDirectory:(false)
038set ocidPlistPath to ocidPlistPathURL's |path|()
039set boolDirExists to appFileManager's fileExistsAtPath:(ocidPlistPath) isDirectory:(true)
040if boolDirExists = true then
041  log "ファイルがあります"
042else if boolDirExists = false then
043  log "ファイルが無いので空のPLISTを作っておきます"
044  #空のDICT
045  set ocidBlankDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:(0)
046  #キーアーカイブ形式で保存する
047  set listResponse to refMe's NSKeyedArchiver's archivedDataWithRootObject:(ocidBlankDict) requiringSecureCoding:(false) |error| :(reference)
048  set ocidSfl3Data to (item 1 of listResponse)
049  if (item 2 of listResponse) ≠ (missing value) then
050    log (item 2 of listDone)'s localizedDescription() as text
051    return "アーカイブに失敗しました"
052  end if
053  #保存
054  set listDone to ocidSfl3Data's writeToURL:(ocidPlistPathURL) options:0  |error| :(reference)
055  if (item 2 of listDone) ≠ (missing value) then
056    log (item 2 of listDone)'s localizedDescription() as text
057    return "ファイルの保存に失敗しました"
058  end if
059end if
060
061########################################
062####ポジション収集
063########################################
064#ポジションを格納する
065set ocidPositionDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:(0)
066#ボジションの収集
067tell application "Finder"
068  repeat with itemDesktopItem in desktop
069    tell itemDesktopItem
070      #格納するキー
071      set strKey to (name) as text
072      #格納する値
073      set listPosition to (desktop position) as list
074      set strURL to (URL) as text
075    end tell
076    #格納用のArray
077    # set ocidSetValueArray to (refMe's NSMutableArray's alloc()'s initWithCapacity:(0))
078    # (ocidSetValueArray's addObject:(listPosition))
079    # (ocidSetValueArray's addObject:(strURL))
080    #格納用のDICT
081    set ocidSetValueDict to (refMe's NSMutableDictionary's alloc()'s initWithCapacity:(0))
082    (ocidSetValueDict's setObject:(listPosition) forKey:("desktop position"))
083    (ocidSetValueDict's setObject:(strURL) forKey:("URL"))
084    #Dictにセット
085    (ocidPositionDict's setObject:(ocidSetValueDict) forKey:(strKey))
086  end repeat
087end tell
088
089########################################
090####保存
091########################################
092#キーアーカイブ形式で保存する
093set listResponse to refMe's NSKeyedArchiver's archivedDataWithRootObject:(ocidPositionDict) requiringSecureCoding:(false) |error| :(reference)
094set ocidSfl3Data to (item 1 of listResponse)
095if (item 2 of listResponse) ≠ (missing value) then
096  log (item 2 of listDone)'s localizedDescription() as text
097  return "アーカイブに失敗しました"
098end if
099#保存
100set listDone to ocidSfl3Data's writeToURL:(ocidPlistPathURL) options:0  |error| :(reference)
101if (item 2 of listDone) ≠ (missing value) then
102  log (item 2 of listDone)'s localizedDescription() as text
103  return "ファイルの保存に失敗しました"
104end if
105
106return "ポジションを保存しました"
AppleScriptで生成しました

あくまでも参考にしてください

【スクリプトエディタで開く】 |

サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003# デスクトップポジション復帰
004#com.cocolog-nifty.quicktimer.icefloe
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006use AppleScript version "2.8"
007use framework "Foundation"
008use framework "AppKit"
009use scripting additions
010
011property refMe : a reference to current application
012
013########################################
014####前処理 ファイルとパス
015########################################
016set appFileManager to refMe's NSFileManager's defaultManager()
017##設定ファイル保存先
018set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSApplicationSupportDirectory) inDomains:(refMe's NSUserDomainMask))
019set ocidApplicatioocidupportDirPathURL to ocidURLsArray's firstObject()
020set ocidSaveDirPathURL to ocidApplicatioocidupportDirPathURL's URLByAppendingPathComponent:("com.cocolog-nifty.quicktimer/Desktop Position") isDirectory:(true)
021#設定ファイルの有無チェック
022set ocidPlistPathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:("com.apple.finder.desktopposition.plist") isDirectory:(false)
023set ocidPlistPath to ocidPlistPathURL's |path|()
024set boolDirExists to appFileManager's fileExistsAtPath:(ocidPlistPath) isDirectory:(true)
025if boolDirExists = true then
026  log "ファイルがあります"
027else if boolDirExists = false then
028  log "ファイルが無いので処理を終了します"
029  return "ファイルが無いので処理を終了します"
030end if
031##処理に必要なのでデスクトップのURLを生成しておく
032set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
033set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
034
035########################################
036####PLIST読み込み
037########################################
038#データ読み込み DATAとして読み込む
039set ocidOption to (refMe's NSDataReadingMappedIfSafe)
040set listResponse to (refMe's NSData's dataWithContentsOfURL:(ocidPlistPathURL) options:(ocidOption) |error| :(reference))
041if (item 2 of listResponse) ≠ (missing value) then
042  log (item 2 of listResponse)'s localizedDescription() as text
043  return "ファイルのデータ読み込みに失敗しました"
044else if (item 2 of listResponse) = (missing value) then
045  set ocidPlistData to (item 1 of listResponse)
046end if
047#DATAを解凍する
048set ocidClassListArray to (refMe's NSMutableArray's alloc()'s initWithCapacity:(0))
049(ocidClassListArray's addObject:(refMe's NSDictionary))
050(ocidClassListArray's addObject:(refMe's NSMutableDictionary))
051(ocidClassListArray's addObject:(refMe's NSArray))
052(ocidClassListArray's addObject:(refMe's NSMutableArray))
053(ocidClassListArray's addObject:(refMe's NSObject's classForCoder))
054(ocidClassListArray's addObject:(refMe's NSObject's classForKeyedArchiver))
055(ocidClassListArray's addObject:(refMe's NSObject's classForKeyedUnarchiver))
056#クラスセット
057set ocidSetClass to refMe's NSSet's alloc()'s initWithArray:(ocidClassListArray)
058#解凍
059set listResponse to refMe's NSKeyedUnarchiver's unarchivedObjectOfClasses:(ocidSetClass) fromData:(ocidPlistData) |error| :(reference)
060if (item 2 of listResponse) ≠ (missing value) then
061  log (item 2 of listResponse)'s localizedDescription() as text
062  return "データをPLISTに解凍するのに失敗しました"
063else if (item 2 of listResponse) = (missing value) then
064  set ocidPlistDict to (item 1 of listResponse)
065end if
066########################################
067####ポジションデータの処理
068########################################
069#ボジションの収集
070tell application "Finder"
071  #デスクトップアイテムを順に処理します
072  repeat with itemDesktopItem in desktop
073    tell itemDesktopItem
074      #キー名を取得して
075      set strKey to (name) as text
076    end tell
077    #読み込んだPLISTからキーで値を取り出して
078    set ocidValueDict to (ocidPlistDict's objectForKey:(strKey))
079    #値が無い場合=保存した時から増えた項目
080    if ocidValueDict = (missing value) then
081      log "ファイル名:" & strKey & " は保存した項目から更新されています"
082      set boolDone to false as boolean
083    else
084      #値が取れたら 実在するかチェックする
085      set strURL to (ocidValueDict's valueForKey:("URL")) as text
086      set ocidChkFilePathURL to (refMe's NSURL's URLWithString:(strURL))
087      set ocidChkFilePathPath to ocidChkFilePathURL's |path|()
088      set boolDirExists to (appFileManager's fileExistsAtPath:(ocidChkFilePathPath) isDirectory:(true))
089      if boolDirExists = true then
090        log "ファイルがあります"
091        #ポジションを直します
092        set listPosition to (ocidValueDict's valueForKey:("desktop position")) as list
093        tell itemDesktopItem
094          #格納するキー
095          set desktop position to (listPosition)
096        end tell
097      else if boolDirExists = false then
098        log "ファイルが無いのでこの項目は処理しません"
099        set boolDone to false as boolean
100      end if
101    end if
102  end repeat
103end tell
104
105
106if boolDone is false then
107  log "保存したポジション情報が古くなっています更新してください"
108  return "保存したポジション情報が古くなっています更新してください"
109else
110  return "処理終了"
111end if
112
113
114
115
AppleScriptで生成しました

ダウンロード - 20240430_070411.html

ダウンロード - 20240430_070431.html

|

[System Events]デスクトップピクチャー(壁紙)を設定する

ダウンロード - 20240430_041642.html


あくまでも参考にしてください

【スクリプトエディタで開く】 |

サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#com.cocolog-nifty.quicktimer.icefloe
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006##自分環境がos12なので2.8にしているだけです
007use AppleScript version "2.8"
008use framework "Foundation"
009use scripting additions
010
011###デスクトップピクチャーのフォルダ
012tell application "System Events"
013  tell current desktop
014    set strDesktopPicDirPath to pictures folder as text
015  end tell
016end tell
017###フォルダの有無チェック1
018tell application "Finder"
019  set boolExists to (exists POSIX file strDesktopPicDirPath) as boolean
020end tell
021log "フォルダがある=" & boolExists
022
023###フォルダの有無チェック2
024tell application "Finder"
025  set boolExists to (exists folder "Desktop Pictures" of folder (path to library folder from user domain)) as boolean
026end tell
027log "フォルダがある=" & boolExists
028#無ければ 作る
029if boolExists is false then
030  try
031    tell application "Finder"
032      make new folder at (path to library folder from user domain) with properties {name:"Desktop Pictures"}
033    end tell
034  on error
035    return "フォルダの作成に失敗しました"
036  end try
037end if
038set aliasDesktopPicturesDirPath to (POSIX file strDesktopPicDirPath) as alias
039tell application "System Events"
040  tell current desktop
041    set strFilePath to picture as text
042  end tell
043end tell
044#今設定していデスクトップ
045log strFilePath
046
047###ダイアログを前面に出す
048set strName to (name of current application) as text
049if strName is "osascript" then
050  tell application "Finder" to activate
051else
052  tell current application to activate
053end if
054###
055set listUTI to {"public.image"}
056set strMes to ("画像ファイルを選んでください") as text
057set strPrompt to ("画像ファイルを選んでください") as text
058try
059  set aliasPictureFilePath to (choose file strMes with prompt strPrompt default location (aliasDesktopPicturesDirPath) of type listUTI with invisibles without multiple selections allowed and showing package contents) as alias
060on error
061  log "エラーしました"
062  return "エラーしました"
063end try
064
065tell application "Finder"
066  set strFileName to (name of aliasPictureFilePath) as text
067  set boolExist to exists (file strFileName of folder aliasDesktopPicturesDirPath)
068  if boolExist is false then
069    move aliasPictureFilePath to folder aliasDesktopPicturesDirPath replacing no
070  else
071    set strExtensionName to (name extension of aliasPictureFilePath) as text
072    set strDefaultFileName to (strFileName & "." & strExtensionName) as text
073    try
074      set strPromptText to "同名のファイルがありました" as text
075      set strMesText to "名前を決めてください" as text
076      ###ファイル名 ダイアログ
077      set aliasDistFilePath to (choose file name strMesText default location aliasDesktopPicturesDirPath default name strDefaultFileName with prompt strPromptText) as «class furl»
078      
079    on error
080      log "エラーしました"
081      return "エラーしました"
082    end try
083    ##ファイルの親ディレクトリ
084    set aliasContainerDirPath to container of aliasPictureFilePath as alias
085    ##保存先をテキストにして
086    set strDistFilePath to aliasDistFilePath as text
087    ##ファイル名を取得する
088    set AppleScript's text item delimiters to ":"
089    set listDistFilePath to every text item of strDistFilePath
090    set AppleScript's text item delimiters to ""
091    set strMovieFileName to (last item of listDistFilePath) as text
092    ##ファイル名を先に変更してから
093    set name of file aliasPictureFilePath to strMovieFileName
094    ##移動する
095    move (file strMovieFileName of folder aliasContainerDirPath) to folder aliasDesktopPicturesDirPath
096    set strFileName to strMovieFileName
097  end if
098  set aliasDistPicPath to (file strFileName of folder aliasDesktopPicturesDirPath) as alias
099end tell
100
101tell application "System Events"
102  tell current desktop
103    set picture to (POSIX path of aliasDistPicPath)
104  end tell
105end tell
106#設定したデスクトップ
107log strFilePath
108
109tell application "System Events"
110  tell current desktop
111    properties
112  end tell
113end tell
114
115
AppleScriptで生成しました

|

[desktoppr]デスクトップ・ピクチャーを変更する(コマンドラインツール)

https://github.com/scriptingosx/desktoppr
モニタID別の設定も対応しています
バイナリーパッケージは↓のところにあります
20221013_1_580x399

|

[sqlite3]デスクトップ・ピクチャーを変更する(断念)

display_uuidとspace_uuidと紐づいているようなのだが…
今一歩理解出来なかった…断念



/usr/bin/sqlite3 $HOME/Library/Application\ Support/Dock/desktoppicture.db


.tables

-->

data         displays     pictures     preferences  prefs        spaces 



.mode column


select * from data;

-->/System/Library/Desktop Pictures/Solid Colors/Red Orange.png

select * from displays;

-->display_uuid  

select * from pictures;

-->space_id  display_id

select * from preferences;

-->key  data_id  picture_id

select * from prefs;

-->null

select * from spaces;

-->space_uuid




delete from data;


insert into data values('/System/Library/Desktop Pictures/Solid Colors');

insert into data values('/System/Library/Desktop Pictures/Solid Colors/Silver.png');

update data set value = '/System/Library/Desktop Pictures/Solid Colors/Silver.png'


select * from data;



.schema

-->

CREATE TABLE pictures (space_id INTEGER, display_id INTEGER);

CREATE TABLE preferences (key INTEGER, data_id INTEGER, picture_id INTEGER);

CREATE TABLE spaces (space_uuid VARCHAR);

CREATE TABLE displays (display_uuid);

CREATE TABLE data (value);

CREATE TABLE prefs (key INTEGER, data);

CREATE INDEX pictures_index ON pictures (space_id, display_id);

CREATE INDEX preferences_index ON preferences (picture_id, data_id);

CREATE INDEX spaces_index ON spaces (space_uuid);

CREATE INDEX displays_index ON displays (display_uuid);

CREATE INDEX data_index ON data (value);

CREATE INDEX prefs_index ON prefs (key);

CREATE TRIGGER space_deleted AFTER DELETE ON spaces BEGIN DELETE FROM pictures WHERE space_id=OLD.ROWID;END;

CREATE TRIGGER display_deleted AFTER DELETE ON displays BEGIN DELETE FROM pictures WHERE display_id=OLD.ROWID;END;

CREATE TRIGGER picture_deleted AFTER DELETE ON pictures BEGIN DELETE FROM preferences WHERE picture_id=OLD.ROWID; DELETE FROM displays WHERE ROWID=OLD.display_id AND NOT EXISTS (SELECT NULL FROM pictures WHERE display_id=OLD.display_id); DELETE FROM spaces WHERE ROWID=OLD.space_id AND NOT EXISTS (SELECT NULL FROM pictures WHERE space_id=OLD.space_id);END;

CREATE TRIGGER preferences_deleted AFTER DELETE ON preferences BEGIN DELETE FROM data WHERE ROWID=OLD.data_id AND NOT EXISTS (SELECT NULL FROM preferences WHERE data_id=OLD.data_id);END;


.quit


|

[mobileconfig]デスクトップ・ピクチャーを変更する

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

  <key>PayloadContent</key>

  <array>

    <dict>

      <!-- 変更不可の場合はTRUE-->

      <key>locked</key>

      <true/>

      <!-- 変更するピクチャーへのUNIXパス-->

      <key>override-picture-path</key>

      <string>/System/Library/Desktop Pictures/Solid Colors/Red Orange.png</string>



      <key>PayloadDisplayName</key>

      <string>Desktop Picture Override</string>

      <key>PayloadIdentifier</key>

      <string>com.apple.desktop.3EF04708-096E-49A0-B803-C83E303BDB05</string>

      <key>PayloadType</key>

      <string>com.apple.desktop</string>

      <key>PayloadUUID</key>

      <string>3EF04708-096E-49A0-B803-C83E303BDB05</string>

      <key>PayloadVersion</key>

      <integer>1</integer>


    </dict>

  </array>

  <key>PayloadDisplayName</key>

  <string>com.apple.desktop</string>

  <key>PayloadDescription</key>

  <string>Desktop Picture Override</string>

  <key>PayloadOrganization</key>

  <string>quicktimer.cocolog-nifty.com</string>

  <key>ConsentText</key>

  <dict>

    <key>default</key>

    <string>デスクトップピクチャーを変更します</string>

  </dict>

  <key>PayloadIdentifier</key>

  <string>com.apple.desktop.C76A6BD2-6796-48AC-BF9D-D2C352DBDE3E</string>

  <key>PayloadType</key>

  <string>Configuration</string>

  <key>PayloadScope</key>

  <string>User</string>

  <key>PayloadUUID</key>

  <string>C76A6BD2-6796-48AC-BF9D-D2C352DBDE3E</string>

  <key>PayloadVersion</key>

  <integer>1</integer>

  <key>TargetDeviceType</key>

  <integer>5</integer>

</dict>

</plist>


|

[Finder]デスクトップ・ピクチャーを変更する


tell application "Finder"
set desktop picture to POSIX file "/System/Library/Desktop Pictures/Solid Colors/Red Orange.png"
(*
Turquoise Green.png
Ocher.png
Plum.png
Red Orange.png
Rose Gold.png
Silver.png
Soft Pink.png
Dusty Rose.png
Electric Blue.png
Gold 2.png
Gold.png
Blue Violet.png
Black.png
Yellow.png
*)

end tell

|

[System Events]デスクトップ・ピクチャーを変更する

デュアルモニタも全て変更

tell application "System Events"
tell every desktop
set picture to (POSIX file "/System/Library/Desktop Pictures/Solid Colors/Red Orange.png")
(*
Turquoise Green.png
Ocher.png
Plum.png
Red Orange.png
Rose Gold.png
Silver.png
Soft Pink.png
Dusty Rose.png
Electric Blue.png
Gold 2.png
Gold.png
Blue Violet.png
Black.png
Yellow.png
*)
end tell
end tell



個別に設定する場合
tell application "System Events"
set listDesktop to every desktop
log listDesktop
repeat with objDesktop in listDesktop
set numID to (id of objDesktop) as number
if numID = 1 then
tell objDesktop
set picture to (POSIX file "/System/Library/Desktop Pictures/Solid Colors/Red Orange.png")
log name as text
log display name as text
log id as number
set change interval to 0
set picture rotation to 0
set random order to false
set translucent menu bar to false
set dynamic style to dark
end tell
else
tell objDesktop
set picture to (POSIX file "/System/Library/Desktop Pictures/Solid Colors/Gold 2.png")
log name as text
log display name as text
log id as number
set change interval to 0
set picture rotation to 0
set random order to false
set translucent menu bar to false
set dynamic style to dark
end tell
end if
end repeat
end tell

|

その他のカテゴリー

Accessibility Acrobat Acrobat 2020 Acrobat AddOn Acrobat Annotation Acrobat ARMDC Acrobat AV2 Acrobat BookMark Acrobat Classic Acrobat DC Acrobat Dialog Acrobat Distiller Acrobat Form Acrobat JS Acrobat Manifest Acrobat Menu Acrobat Open Acrobat Plugin Acrobat Preferences Acrobat Preflight Acrobat python Acrobat Reader Acrobat SCA Acrobat SCA Updater Acrobat Sequ Acrobat Sign Acrobat Stamps Acrobat Watermark Acrobat Windows Acrobat Windows Reader Admin Admin Account Admin Apachectl Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Mobileconfig Admin Permission Admin Pkg Admin Power Management Admin Printer Admin SetUp Admin SMB Admin Support Admin System Information Admin Tools Admin Users Admin Volumes Adobe Adobe FDKO Adobe RemoteUpdateManager AppKit Apple AppleScript AppleScript do shell script AppleScript List AppleScript ObjC AppleScript Osax AppleScript PDF AppleScript Pictures AppleScript record AppleScript Script Editor AppleScript Script Menu AppleScript Shortcuts AppleScript Shortcuts Events AppleScript System Events AppleScript System Events Plist AppleScript Video Applications AppStore Archive Attributes Automator BackUp Barcode Barcode QR Barcode QR Decode Bash Basic Basic Path Bluetooth BOX Browser Calendar CD/DVD Choose Chrome CIImage CityCode CloudStorage Color com.apple.LaunchServices.OpenWith Console Contacts CotEditor CURL current application Date&Time delimiters Desktop Device Diff Disk Dock DropBox Droplet eMail Encode % Encode Decode Encode UTF8 Error EXIFData ffmpeg File Finder Firefox Folder FolderAction Fonts GIF github Guide HTML HTML Entity Icon Illustrator Image Events Image2PDF ImageOptim iPhone iWork Javascript Jedit Json Label Leading Zero List locationd LRC lsappinfo LSSharedFileList m3u8 Mail MakePDF Map Math Media Media AVAsset Media AVconvert Media AVFoundation Media AVURLAsset Media Movie Media Music Memo Messages Microsoft Microsoft Edge Microsoft Excel Mouse Music NetWork Notes NSArray NSArray Sort NSBezierPath NSBitmapImageRep NSBundle NSCFBoolean NSCharacterSet NSColor NSColorList NSData NSDecimalNumber NSDictionary NSError NSEvent NSFileAttributes NSFileManager NSFileManager enumeratorAtURL NSFont NSFontManager NSGraphicsContext NSImage NSIndex NSKeyedArchiver NSKeyedUnarchiver NSLocale NSMutableArray NSMutableDictionary NSMutableString NSNotFound NSNumber NSOpenPanel NSPasteboard NSpoint NSPredicate NSPrintOperation NSRange NSRect NSRegularExpression NSRunningApplication NSScreen NSSize NSString NSString stringByApplyingTransform NSStringCompareOptions NSTask NSTimeZone NSURL NSURL File NSURLBookmark NSURLComponents NSURLResourceKey NSURLSession NSUserDefaults NSUUID NSView NSWorkspace Numbers OAuth OneDrive PDF PDFAnnotation PDFAnnotationWidget PDFContext PDFDisplayBox PDFDocumentPermissions PDFImageRep PDFKit PDFnUP PDFOutline perl Photoshop PlistBuddy pluginkit postalcode PostScript prefPane Preview Python QuickLook QuickTime ReadMe Regular Expression Reminders ReName Repeat RTF Safari SaveFile ScreenCapture ScreenSaver SF Symbols character id SF Symbols Entity sips Skype Slack Sound Spotlight sqlite SRT StandardAdditions Swift System Settings TCC TemporaryItems Terminal Text Text CSV Text MD Text TSV TextEdit Tools Translate Trash Twitter Typography UI Unit Conversion UTType valueForKeyPath Video VisionKit Visual Studio Code VMware Fusion Wacom webarchive webp Wifi Windows XML XML EPUB XML OPML XML Plist XML RSS XML savedSearch XML SVG XML TTML XML webloc XML XMP YouTube zoom