Microsoft Edge

[Edge]WEBページのクラスを収集してテキスト項目が同じならクリック


AppleScript サンプルコード

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

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#
005#  com.cocolog-nifty.quicktimer.icefloe
006----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
007use AppleScript version "2.8"
008use scripting additions
009
010(*
011要は
012<span class="spectrum-Tabs-itemLabel">文書</span>
013この部分のこと
014*)
015set strTargetClassName to ("spectrum-Tabs-itemLabel") as text
016
017set strStringValue to ("文書") as text
018
019##ウィンドウの有無チェック
020#なければ新規Windowを作成
021tell application "Microsoft Edge"
022  set numCntWindow to (count of every window) as integer
023  if numCntWindow = 0 then
024    make new window
025  end if
026end tell
027
028##タブチェック
029tell application "Microsoft Edge"
030  tell front window
031    tell active tab
032      set strURL to URL as text
033    end tell
034    if strURL starts with "edge://" then
035      ##今の前面tabは機能タブなのでそのまま
036    else
037      #何か開いているなら新規タブにして
038      make new tab
039      # open location "edge://newtab"
040    end if
041  end tell
042end tell
043
044#前面は空のタブnewtabのはず
045#URLをセットして
046tell application "Microsoft Edge"
047  activate
048  tell front window
049    tell active tab
050      set URL to "https://acrobat.adobe.com/link/home/" as text
051    end tell
052  end tell
053end tell
054#祈りの1秒
055delay 1
056set boolLoading to true
057
058#URLが開くのを待つ
059repeat while boolLoading is true
060  tell application "Microsoft Edge"
061    activate
062    tell front window
063      tell active tab
064        set boolLoading to loading as boolean
065        log boolLoading
066      end tell
067    end tell
068  end tell
069  delay 0.5
070end repeat
071
072#クラスを収集して
073tell application "Microsoft Edge"
074  activate
075  tell front window
076    tell active tab
077      activate
078      set numCntElement to execute javascript "document.getElementsByClassName('" & strTargetClassName & "').length;"
079    end tell
080  end tell
081end tell
082
083set numCntElement to numCntElement as integer
084#順番に確認していく
085repeat with itemNo from (numCntElement - 1) to 0 by -1
086  tell application "Microsoft Edge"
087    activate
088    tell front window
089      tell active tab
090        activate
091        #対象のテキストを取得して
092        set strString to execute javascript "document.getElementsByClassName('" & strTargetClassName & "')[" & itemNo & "].textContent;"
093        #ターゲットと同じなら
094        if strString is strStringValue then
095          #クリックする
096          execute javascript "document.getElementsByClassName('" & strTargetClassName & "')[" & itemNo & "].click();"
097        end if
098      end tell
099    end tell
100  end tell
101end repeat
AppleScriptで生成しました

|

chrome 拡張機能 選択範囲を翻訳

ダウンロード - deepljp2en.zip

ダウンロード - deeplen2ja.zip

ダウンロード - miraitranslateen.zip

ダウンロード - miraitranslateja.zip

202411130923451_1376x1046

|

[Edge for Mac] ユーザー権限でのインストール&アップデート(自分用)


AppleScript サンプルコード

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

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 framework "UniformTypeIdentifiers"
010use scripting additions
011
012property refMe : a reference to current application
013
014property strBundleID : "com.microsoft.edgemac"
015
016################################
017#ダウンロードURL
018set ocidURLComponents to refMe's NSURLComponents's alloc()'s init()
019ocidURLComponents's setScheme:("https")
020###ホストを追加
021ocidURLComponents's setHost:("go.microsoft.com")
022###パスを追加
023ocidURLComponents's setPath:("/fwlink/")
024##クエリー部
025set ocidQueryItems to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
026ocidQueryItems's addObject:(refMe's NSURLQueryItem's alloc()'s initWithName:("linkid") value:("2093504"))
027##クエリーをセットする
028ocidURLComponents's setQueryItems:(ocidQueryItems)
029##URLに戻して テキストにしておく
030set ocidOpenURL to ocidURLComponents's |URL|()
031set strURL to ocidOpenURL's absoluteString() as text
032log strURL
033##URLに戻して テキストにしておく
034set ocidURL to ocidURLComponents's |URL|()
035
036################################
037#
038#リクエスト
039set appRequest to refMe's NSMutableURLRequest's requestWithURL:(ocidURL)
040#初期設定
041set ocidConf to (refMe's NSURLSessionConfiguration's defaultSessionConfiguration)
042#キュー
043set appQueue to (refMe's NSOperationQueue's mainQueue)
044#セッション
045set appSession to refMe's NSURLSession's sessionWithConfiguration:(ocidConf) delegate:("self") delegateQueue:(appQueue)
046#タスク
047#set appTask to appSession's dataTaskWithRequest:(appRequest)
048set appTask to appSession's dataTaskWithURL:(ocidURL) completionHandler:(missing value)
049#タスク 開始
050appTask's resume()
051#最大5秒のループ
052repeat 5 times
053  #タスクのステータス取得
054  set ocidStatue to appTask's state()
055  log ocidStatue as text
056  #実行中なら
057  if ocidStatue = (refMe's NSURLSessionTaskStateRunning as integer) then
058    #レスポンスの内容を取得して
059    set ocidResponse to appTask's response()
060    #まだ取得できない状態なら
061    if ocidResponse = (missing value) then
062      #1秒待つ
063      delay 1
064    else
065      #レスポンスが取得できたら
066      log ocidResponse's statusCode()
067      #クラスを確認(なければここでエラーになる)
068      log (ocidResponse's isKindOfClass:(refMe's NSHTTPURLResponse's |class|))
069      #リダイレクトされたURLを取得して
070      set ocidRedirectURL to ocidResponse's |URL|
071      exit repeat
072    end if
073  end if
074end repeat
075#タスクをキャンセル終了する
076appTask's cancel()
077#
078set ocidPkgFileName to ocidRedirectURL's lastPathComponent()
079
080
081################################
082#各種パス
083set appFileManager to refMe's NSFileManager's defaultManager()
084set ocidTempDirURL to appFileManager's temporaryDirectory()
085set ocidUUID to refMe's NSUUID's alloc()'s init()
086set ocidUUIDString to ocidUUID's UUIDString
087set ocidSaveDirPathURL to ocidTempDirURL's URLByAppendingPathComponent:(ocidUUIDString) isDirectory:(true)
088#
089set appFileManager to refMe's NSFileManager's defaultManager()
090set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
091ocidAttrDict's setValue:(511) forKey:(refMe's NSFilePosixPermissions)
092set listDone to appFileManager's createDirectoryAtURL:(ocidSaveDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference)
093#PKGの解凍ポイント
094set strFileName to "MicrosoftEdge" as text
095set ocidExtractPathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:(strFileName) isDirectory:(true)
096set strExtractPath to ocidExtractPathURL's |path| as text
097
098#パス
099set ocidSaveFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:(ocidPkgFileName) isDirectory:(false)
100set strPkgFilePath to ocidSaveFilePathURL's |path| as text
101################################
102#最終的なインストール先
103set appFileManager to refMe's NSFileManager's defaultManager()
104set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSApplicationDirectory) inDomains:(refMe's NSUserDomainMask))
105set ocidApplicationDirPathURL to ocidURLsArray's firstObject()
106set ocidSitesDirPathURL to ocidApplicationDirPathURL's URLByAppendingPathComponent:("Sites") isDirectory:(true)
107ocidAttrDict's setValue:(448) forKey:(refMe's NSFilePosixPermissions)
108set listDone to appFileManager's createDirectoryAtURL:(ocidSitesDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference)
109#
110set strFileName to "Microsoft Edge.app" as text
111set ocidDistAppPathURL to ocidSitesDirPathURL's URLByAppendingPathComponent:(strFileName) isDirectory:(false)
112set strDistAppPath to ocidDistAppPathURL's |path| as text
113################################
114#ダウンロード
115set ocidOption to (refMe's NSDataReadingMappedIfSafe)
116set listResponse to refMe's NSData's alloc()'s initWithContentsOfURL:(ocidURL) options:(ocidOption) |error| :(reference)
117if (item 2 of listResponse) = (missing value) then
118  log "正常処理"
119  set ocidReadData to (item 1 of listResponse)
120else if (item 2 of listResponse) ≠ (missing value) then
121  set strErrorNO to (item 2 of listResponse)'s code() as text
122  set strErrorMes to (item 2 of listResponse)'s localizedDescription() as text
123  refMe's NSLog("■:" & strErrorNO & strErrorMes)
124  return "initWithContentsOfURLエラーしました" & strErrorNO & strErrorMes
125end if
126#NSDataで保存
127set ocidOption to (refMe's NSDataWritingAtomic)
128set listDone to ocidReadData's writeToURL:(ocidSaveFilePathURL) options:(ocidOption) |error| :(reference)
129if (item 1 of listDone) is true then
130  log "正常処理"
131else if (item 2 of listDone) ≠ (missing value) then
132  set strErrorNO to (item 2 of listDone)'s code() as text
133  set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
134  refMe's NSLog("■:" & strErrorNO & strErrorMes)
135  return "writeToURLエラーしました" & strErrorNO & strErrorMes
136end if
137################################
138#解凍
139set strCommandText to ("/usr/sbin/pkgutil  --expand-full \"" & strPkgFilePath & "\"  \"" & strExtractPath & "\"") as text
140log ("\r" & strCommandText & "\r") as text
141set strExecCommand to ("/bin/zsh -c '" & strCommandText & "'") as text
142try
143  set strResponse to (do shell script strExecCommand) as text
144on error
145  log "zshでエラーになりました\r" & strCommandText & "\r"
146  return "マウントエラー 処理終了"
147end try
148
149
150################################
151#Dockに登録しているか?
152set appFileManager to refMe's NSFileManager's defaultManager()
153set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSLibraryDirectory) inDomains:(refMe's NSUserDomainMask))
154set ocidLibraryDirPathURL to ocidURLsArray's firstObject()
155set ocidPlistPathURL to ocidLibraryDirPathURL's URLByAppendingPathComponent:("Preferences/com.apple.dock.plist") isDirectory:(true)
156set listResponse to refMe's NSDictionary's alloc()'s initWithContentsOfURL:(ocidPlistPathURL) |error| :(reference)
157set ocidRootDict to (item 1 of listResponse)
158set ocidPersistentArray to ocidRootDict's objectForKey:("persistent-apps")
159set numCntArray to ocidPersistentArray's |count|() as integer
160set numDocPos to missing value
161repeat with itemNo from 0 to (numCntArray - 1) by 1
162  set ocidItemDict to (ocidPersistentArray's objectAtIndex:(itemNo))
163  set ocidTitleDict to (ocidItemDict's objectForKey:("tile-data"))
164  set ocidSetBundle to (ocidTitleDict's valueForKey:("bundle-identifier")) as text
165  if strBundleID is ocidSetBundle then
166    set numDocPos to itemNo as integer
167    set ocidSetDict to ocidItemDict's mutableCopy()
168  end if
169end repeat
170
171
172################################
173#アプリケーションを終了
174try
175  tell application id strBundleID to quit
176end try
177#
178set ocidResultsArray to (refMe's NSRunningApplication's runningApplicationsWithBundleIdentifier:(strBundleID))
179set numCntArray to ocidResultsArray's |count|()
180repeat with itemNo from 0 to (numCntArray - 1) by 1
181  set ocidRunApp to (ocidResultsArray's objectAtIndex:(itemNo))
182  #通常終了を試みます
183  set boolDone to ocidRunApp's terminate()
184  if (boolDone) is true then
185    log strBundleID & ":正常終了"
186    #失敗したら
187  else if (boolDone) is false then
188    #強制終了を試みます
189    set boolDone to ocidRunApp's forceTerminate()
190  end if
191end repeat
192
193################################
194#
195set appSharedWorkspace to refMe's NSWorkspace's sharedWorkspace()
196##バンドルIDからアプリケーションのURLを取得
197set ocidAppBundle to (refMe's NSBundle's bundleWithIdentifier:(strBundleID))
198if ocidAppBundle ≠ (missing value) then
199  set ocidAppPathURL to ocidAppBundle's bundleURL()
200else if ocidAppBundle = (missing value) then
201  set ocidAppPathURL to (appSharedWorkspace's URLForApplicationWithBundleIdentifier:(strBundleID))
202end if
203##予備(アプリケーションのURL)
204if ocidAppPathURL = (missing value) then
205  tell application "Finder"
206    try
207      set aliasAppApth to (application file id strBundleID) as alias
208      set strAppPath to (POSIX path of aliasAppApth) as text
209      set strAppPathStr to refMe's NSString's stringWithString:(strAppPath)
210      set strAppPath to strAppPathStr's stringByStandardizingPath()
211      set ocidAppPathURL to refMe's NSURL's alloc()'s initFileURLWithPath:(strAppPath) isDirectory:(true)
212    on error
213      log "アプリケーションが見つかりませんでした"
214    end try
215  end tell
216end if
217if ocidAppPathURL ≠ (missing value) then
218  #ゴミ箱に入れる
219  set appFileManager to refMe's NSFileManager's defaultManager()
220  set listDone to (appFileManager's trashItemAtURL:(ocidAppPathURL) resultingItemURL:(missing value) |error| :(reference))
221  if (item 2 of listDone) ≠ (missing value) then
222    set strErrorNO to (item 2 of listDone)'s code() as text
223    set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
224    refMe's NSLog("■:" & strErrorNO & strErrorMes)
225    log "エラーしました" & strErrorNO & strErrorMes
226  end if
227end if
228
229
230################################
231#
232set strSitesDirPathURL to ocidSitesDirPathURL's |path| as text
233set strDittoAppPath to (strExtractPath & "/" & (ocidPkgFileName as text) & "/Payload/Microsoft Edge.app")
234set strCommandText to ("/bin/mv  \"" & strDittoAppPath & "\" \"" & strSitesDirPathURL & "\"") as text
235log ("\r" & strCommandText & "\r") as text
236set strExecCommand to ("/bin/zsh -c '" & strCommandText & "'") as text
237try
238  set strResponse to (do shell script strExecCommand) as text
239on error
240  log "mvでエラーになりました\r" & strCommandText & "\r"
241  return "mvエラー 処理終了"
242end try
243
244################################
245#
246log doMoveToTrash("~/Library/Caches/com.microsoft.edgemac")
247log doMoveToTrash("~/Library/Caches/com.microsoft.EdgeUpdater")
248log doMoveToTrash("~/Library/Caches/Microsoft Edge")
249log doMoveToTrash("~/Library/HTTPStorages/com.microsoft.edgemac")
250log doMoveToTrash("~/Library/HTTPStorages/com.microsoft.edgemac.binarycookies")
251log doMoveToTrash("~/Library/HTTPStorages/com.microsoft.EdgeUpdater")
252log doMoveToTrash("~/Library/Application Support/Microsoft/EdgeUpdater")
253log doMoveToTrash("~/Library/Application Support/Microsoft Edge/component_crx_cache")
254log doMoveToTrash("~/Library/Application Support/Microsoft Edge/extensions_crx_cache")
255log doMoveToTrash("~/Library/Application Support/Microsoft Edge/GraphiteDawnCache")
256log doMoveToTrash("~/Library/Application Support/Microsoft Edge/GrShaderCache")
257log doMoveToTrash("~/Library/Application Support/Microsoft Edge/ShaderCache")
258#C
259set ocidTempDir to (refMe's NSTemporaryDirectory())
260set ocidTemporaryTPathURL to refMe's NSURL's fileURLWithPath:(ocidTempDir)
261set ocidTempURL to ocidTemporaryTPathURL's URLByDeletingLastPathComponent()
262set ocidTemporaryCPathURL to ocidTempURL's URLByAppendingPathComponent:("C") isDirectory:(true)
263log doMoveToTrash(ocidTemporaryCPathURL's URLByAppendingPathComponent:"com.microsoft.edgemac")
264log doMoveToTrash(ocidTemporaryCPathURL's URLByAppendingPathComponent:"com.microsoft.edgemac.helper")
265
266################################
267#Profile
268set listDirName to {"Default", "Profile 1", "Profile 2", "Profile 3", "Profile 4", "Profile 5", "Profile 6", "Profile 7", "Profile 8", "Profile 9", "Profile 10"} as list
269set appFileManager to refMe's NSFileManager's defaultManager()
270set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSApplicationSupportDirectory) inDomains:(refMe's NSUserDomainMask))
271set ocidApplicatioocidupportDirPathURL to ocidURLsArray's firstObject()
272set ocidSubDirPathURL to (ocidApplicatioocidupportDirPathURL's URLByAppendingPathComponent:("Microsoft Edge") isDirectory:(true))
273
274
275repeat with itemDirName in listDirName
276  set ocidProfileDirPathURL to (ocidSubDirPathURL's URLByAppendingPathComponent:(itemDirName) isDirectory:(true))
277  #
278  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("blob_storage") isDirectory:(true))
279  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
280  #
281  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("BudgetDatabase") isDirectory:(true))
282  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
283  #
284  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("DawnCache") isDirectory:(true))
285  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
286  #
287  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("DawnGraphiteCache") isDirectory:(true))
288  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
289  #
290  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("DawnWebGPUCache") isDirectory:(true))
291  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
292  #
293  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("Download Service") isDirectory:(true))
294  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
295  #
296  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("File System") isDirectory:(true))
297  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
298  #
299  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("GPUCache") isDirectory:(true))
300  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
301  #
302  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("IndexedDB") isDirectory:(true))
303  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
304  #
305  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("Service Worker/ScriptCache") isDirectory:(true))
306  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
307  #
308  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("Service Worker/CacheStorage") isDirectory:(true))
309  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
310  #
311  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("Shared Dictionary/cache") isDirectory:(true))
312  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
313  #
314  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("WebStorage") isDirectory:(true))
315  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
316  #
317  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("Storage/ext") isDirectory:(true))
318  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
319  #
320  set ocidGo2TrashPathURL to (ocidProfileDirPathURL's URLByAppendingPathComponent:("Service Worker") isDirectory:(true))
321  set listDone to (appFileManager's trashItemAtURL:(ocidGo2TrashPathURL) resultingItemURL:(ocidGo2TrashPathURL) |error| :(reference))
322  
323end repeat
324
325
326################################
327#ダウンロードしたDMGをゴミ箱に
328set listDone to (appFileManager's trashItemAtURL:(ocidSaveDirPathURL) resultingItemURL:(missing value) |error| :(reference))
329
330
331
332################################
333#元のDOCKの位置に登録
334if numDocPos ≠ (missing value) then
335  set listResponse to refMe's NSDictionary's alloc()'s initWithContentsOfURL:(ocidPlistPathURL) |error| :(reference)
336  set ocidRootDict to (item 1 of listResponse)
337  set ocidPersistentArray to ocidRootDict's objectForKey:("persistent-apps")
338  ocidPersistentArray's insertObject:(ocidSetDict) atIndex:(numDocPos)
339  set listDone to ocidRootDict's writeToURL:(ocidPlistPathURL) |error| :(reference)
340end if
341
342
343
344
345return
346
347###################################
348########処理 ゴミ箱に入れる
349###################################
350
351to doMoveToTrash(argFilePath)
352  ###ファイルマネジャー初期化
353  set appFileManager to refMe's NSFileManager's defaultManager()
354  #########################################
355  ###渡された値のClassを調べてとりあえずNSURLにする
356  set refClass to class of argFilePath
357  if refClass is list then
358    return "エラー:リストは処理しません"
359  else if refClass is text then
360    log "テキストパスです"
361    set ocidArgFilePathStr to (refMe's NSString's stringWithString:argFilePath)
362    set ocidArgFilePath to ocidArgFilePathStr's stringByStandardizingPath
363    set ocidArgFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:ocidArgFilePath)
364  else if refClass is alias then
365    log "エイリアスパスです"
366    set strArgFilePath to (POSIX path of argFilePath) as text
367    set ocidArgFilePathStr to (refMe's NSString's stringWithString:strArgFilePath)
368    set ocidArgFilePath to ocidArgFilePathStr's stringByStandardizingPath
369    set ocidArgFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:ocidArgFilePath)
370  else
371    set refClass to (className() of argFilePath) as text
372    if refClass contains "NSPathStore2" then
373      log "NSPathStore2です"
374      set ocidArgFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:argFilePath)
375    else if refClass contains "NSCFString" then
376      log "NSCFStringです"
377      set ocidArgFilePath to argFilePath's stringByStandardizingPath
378      set ocidArgFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:ocidArgFilePath)
379    else if refClass contains "NSURL" then
380      set ocidArgFilePathURL to argFilePath
381      log "NSURLです"
382    end if
383  end if
384  #########################################
385  ###
386  -->false
387  set ocidFalse to (refMe's NSNumber's numberWithBool:false)'s boolValue
388  -->true
389  set ocidTrue to (refMe's NSNumber's numberWithBool:true)'s boolValue
390  #########################################
391  ###NSURLがエイリアス実在するか
392  set ocidArgFilePath to ocidArgFilePathURL's |path|()
393  set boolFileAlias to appFileManager's fileExistsAtPath:(ocidArgFilePath)
394  ###パス先が実在しないなら処理はここまで
395  if boolFileAlias = false then
396    log ocidArgFilePath as text
397    log "処理中止 パス先が実在しない"
398    return false
399  end if
400  #########################################
401  ###NSURLがディレクトリなのか?ファイルなのか?
402  set listBoolDir to ocidArgFilePathURL's getResourceValue:(reference) forKey:(refMe's NSURLIsDirectoryKey) |error| :(reference)
403  #   log (item 1 of listBoolDir)
404  #   log (item 2 of listBoolDir)
405  #   log (item 3 of listBoolDir)
406  if (item 2 of listBoolDir) = ocidTrue then
407    #########################################
408    log "ディレクトリです"
409    log ocidArgFilePathURL's |path| as text
410    ##内包リスト
411    set listResult to appFileManager's contentsOfDirectoryAtURL:ocidArgFilePathURL includingPropertiesForKeys:{refMe's NSURLPathKey} options:0  |error| :(reference)
412    ###結果
413    set ocidContentsPathURLArray to item 1 of listResult
414    ###リストの数だけ繰り返し
415    repeat with itemContentsPathURL in ocidContentsPathURLArray
416      ###ゴミ箱に入れる
417      set listResult to (appFileManager's trashItemAtURL:itemContentsPathURL resultingItemURL:(missing value) |error| :(reference))
418    end repeat
419  else
420    #########################################
421    log "ファイルです"
422    set listBoolDir to ocidArgFilePathURL's getResourceValue:(reference) forKey:(refMe's NSURLIsAliasFileKey) |error| :(reference)
423    if (item 2 of listBoolDir) = ocidTrue then
424      log "エイリアスは処理しません"
425      return false
426    end if
427    set listBoolDir to ocidArgFilePathURL's getResourceValue:(reference) forKey:(refMe's NSURLIsSymbolicLinkKey) |error| :(reference)
428    if (item 2 of listBoolDir) = ocidTrue then
429      log "シンボリックリンクは処理しません"
430      return false
431    end if
432    set listBoolDir to ocidArgFilePathURL's getResourceValue:(reference) forKey:(refMe's NSURLIsSystemImmutableKey) |error| :(reference)
433    if (item 2 of listBoolDir) = ocidTrue then
434      log "システムファイルは処理しません"
435      return false
436    end if
437    ###ファイルをゴミ箱に入れる
438    set listResult to (appFileManager's trashItemAtURL:ocidArgFilePathURL resultingItemURL:(missing value) |error| :(reference))
439  end if
440  return true
441end doMoveToTrash
442
AppleScriptで生成しました

|

[Edge]選択範囲にBRを入れて戻す(HTMLフォーム用)


AppleScript サンプルコード

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

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 "UniformTypeIdentifiers"
009use framework "AppKit"
010use scripting additions
011
012set strBundleID to "com.microsoft.edgemac" as text
013
014property refMe : a reference to current application
015
016####ペーストボード初期化
017set appPasteboard to refMe's NSPasteboard's generalPasteboard()
018appPasteboard's clearContents()
019
020#####WINDOWチェック
021tell application id strBundleID
022  set numCntWindow to (count of every window) as integer
023  if numCntWindow = 0 then
024    display alert "ウィンドウがありませんでした"
025    return "ウィンドウがありません"
026  end if
027end tell
028#####
029tell application "Microsoft Edge"
030  tell front window
031    tell active tab
032      activate
033      copy selection
034    end tell
035  end tell
036end tell
037###ペーストボード格納待ち
038delay 0.1
039####ペーストボード取得
040set ocidPastBoardTypeArray to appPasteboard's types()
041log ocidPastBoardTypeArray as list
042if (count of ocidPastBoardTypeArray) = 0 then
043  display alert "選択範囲がありませんでした"
044  return "選択範囲がありませんでした"
045end if
046if (ocidPastBoardTypeArray as list) contains "NSStringPboardType" then
047  ###ペーストボードの中身をテキストで確定
048  set ocidSelectionText to appPasteboard's stringForType:(refMe's NSStringPboardType)
049else if (ocidPastBoardTypeArray as list) contains "public.utf8-plain-text" then
050  set ocidSelectionText to appPasteboard's stringForType:("public.utf8-plain-text")
051end if
052#取得したテキストに改行前にBRを入れる
053set ocidOrgStrings to (refMe's NSString's stringWithString:(ocidSelectionText))
054set ocidReplacedStrings to (ocidOrgStrings's stringByReplacingOccurrencesOfString:("\n") withString:("<br />\n"))
055#取得したテキストの最後尾にBRを入れる
056set ocidReplacedStringM to refMe's NSMutableString's alloc()'s initWithCapacity:(0)
057ocidReplacedStringM's setString:(ocidReplacedStrings)
058ocidReplacedStringM's appendString:("<br />\n")
059set strSelectionText to ocidReplacedStringM as text
060#クリップボードに戻す
061appPasteboard's clearContents()
062appPasteboard's setString:(ocidReplacedStringM) forType:(refMe's NSPasteboardTypeString)
063#####
064#Microsoft Edgeの選択範囲に戻す
065tell application "Microsoft Edge"
066  tell front window
067    tell active tab
068      activate
069      paste selection
070    end tell
071  end tell
072end tell
073
AppleScriptで生成しました

|

[bash]Edgeをユーザー環境にインストールする(非推奨)


サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002#com.cocolog-nifty.quicktimer.icefloe
003#
004#################################################
005###管理者インストールしているか?チェック
006USER_WHOAMI=$(/usr/bin/whoami)
007/bin/echo "実行ユーザー(whoami): $USER_WHOAMI"
008###実行しているユーザー名
009CONSOLE_USER=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/ { print $3 }')
010/bin/echo "コンソールユーザー(scutil): $CONSOLE_USER"
011###実行しているユーザー名
012HOME_USER=$(/bin/echo "$HOME" | /usr/bin/awk -F'/' '{print $NF}')
013/bin/echo "実行ユーザー(HOME): $HOME_USER"
014###logname
015LOGIN_NAME=$(/usr/bin/logname)
016/bin/echo "ログイン名(logname): $LOGIN_NAME"
017###UID
018USER_NAME=$(/usr/bin/id -un)
019/bin/echo "ユーザー名(id): $USER_NAME"
020###STAT
021STAT_USR=$(/usr/bin/stat -f%Su /dev/console)
022/bin/echo "STAT_USR(console): $STAT_USR"
023
024########################################
025##OS
026PLIST_PATH="/System/Library/CoreServices/SystemVersion.plist"
027STR_OS_VER=$(/usr/bin/defaults read "$PLIST_PATH" ProductVersion)
028/bin/echo "OS VERSION :" "$STR_OS_VER"
029STR_MAJOR_VERSION="${STR_OS_VER%%.*}"
030/bin/echo "STR_MAJOR_VERSION :" "$STR_MAJOR_VERSION"
031STR_MINOR_VERSION="${STR_OS_VER#*.}"
032/bin/echo "STR_MINOR_VERSION :" "$STR_MINOR_VERSION"
033
034################################################
035### DOCKに登録済みかゴミ箱に入れる前に調べておく
036###設定項目
037STR_BUNDLEID="com.microsoft.edgemac"
038STR_APP_PATH="/Users/${STAT_USR}/Applications/Sites/Microsoft Edge.app"
039STR_APP_NAME="Microsoft Edge"
040
041#####OSAスクリプトはエラーすることも多い(初回インストール時はエラーになる)
042/usr/bin/osascript -e "tell application id \"com.microsoft.edgemac\" to quit"
043##念の為 KILLもする
044/usr/bin/killall "$STR_APP_NAME" 2>/dev/null
045/usr/bin/killall "$STR_APP_NAME Helper" 2>/dev/null
046/usr/bin/killall "$STR_APP_NAME Helper (GPU)" 2>/dev/null
047/usr/bin/killall "$STR_APP_NAME Helper (Renderer)" 2>/dev/null
048
049##Dockの登録数を調べる
050JSON_PERSISENT_APPS=$(/usr/bin/defaults read com.apple.dock persistent-apps)
051NUN_CNT_ITEM=$(/bin/echo "$JSON_PERSISENT_APPS" | grep -o "tile-data" | wc -l)
052/bin/echo "Dock登録数:$NUN_CNT_ITEM"
053##Dockの登録数だけ繰り返し
054#カウンタ初期化
055NUM_CNT=0
056#ポジション番号にNULL文字を入れる
057NUM_POSITION="NULL"
058###対象のバンドルIDがDockに登録されているか順番に調べる
059while [ $NUM_CNT -lt "$NUN_CNT_ITEM" ]; do
060  ##順番にバンドルIDを取得して
061  STR_CHK_BUNDLEID=$(/usr/libexec/PlistBuddy -c "Print:persistent-apps:$NUM_CNT:tile-data:bundle-identifier" "$HOME/Library/Preferences/com.apple.dock.plist")
062  ##対象のバンドルIDだったら
063  if [ "$STR_CHK_BUNDLEID" = "$STR_BUNDLEID" ]; then
064    /bin/echo "DockのポジションNO: $NUM_CNT バンドルID:$STR_CHK_BUNDLEID"
065    ##位置情報ポジションを記憶しておく
066    NUM_POSITION=$NUM_CNT
067  fi
068  NUM_CNT=$((NUM_CNT + 1))
069done
070
071#################################
072###クリーニング ユーザー
073function DO_MOVE_TO_TRASH() {
074  if [ -e "$1" ]; then
075    TRASH_DIR=$(/usr/bin/mktemp -d "/Users/${STAT_USR}/.Trash/Edge_XXXXXXXX")
076    /bin/chmod 777 "$TRASH_DIR"
077    /usr/bin/chflags noschg "$1"
078    /usr/bin/chflags nosimmutable "$1"
079    /bin/chmod -N "$1"
080    /bin/mv "$1" "$TRASH_DIR"
081  else
082    /bin/echo "$1""は見つかりませんでした"
083  fi
084}
085##
086DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Applications/Sites/Microsoft Edge.app"
087##
088DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Caches/com.microsoft.autoupdate2"
089DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Caches/com.microsoft.SharePoint-mac"
090DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Caches/Microsoft"
091DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/HTTPStorages/com.microsoft.autoupdate2"
092DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/HTTPStorages/com.microsoft.edgemac"
093DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/HTTPStorages/com.microsoft.edgemac.binarycookies"
094DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Microsoft/MicrosoftSoftwareUpdate"
095DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/BrowserMetrics-spare.pma"
096DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/BrowserMetrics"
097
098
099#################################
100/bin/mkdir -p "/Users/${STAT_USR}/Applications/Sites"
101/bin/chmod 755 "/Users/${STAT_USR}/Applications/Sites"
102/bin/chmod 700 "/Users/${STAT_USR}/Applications"
103
104/usr/bin/touch "/Users/${STAT_USR}/Applications/.localized"
105/usr/bin/touch "/Users/${STAT_USR}/Applications/Sites/.localized"
106
107#################################
108###ここだけ変えればなんでいけるか?
109STR_URL="https://go.microsoft.com/fwlink/?linkid=2093504"
110
111USER_TEMP_DIR=$(/usr/bin/mktemp -d)
112/bin/echo "TMPDIR:" "$USER_TEMP_DIR"
113
114###リダイレクト先のURLを取得
115STR_REDIRECT_URL=$(/usr/bin/curl -s -L -I -o /dev/null -w '%{url_effective}' "$STR_URL")
116###ファイル名を取得
117DL_FILE_NAME=$(/usr/bin/basename "$STR_REDIRECT_URL")
118/bin/echo "DL_FILE_NAME:$DL_FILE_NAME"
119
120###ファイル名指定してダウンロード
121###ダウンロード
122if ! /usr/bin/curl -L -o "$USER_TEMP_DIR/$DL_FILE_NAME" "$STR_URL" --connect-timeout 20; then
123  /bin/echo "ファイルのダウンロードに失敗しました HTTP1.1で再トライします"
124  if ! /usr/bin/curl -L -o "$USER_TEMP_DIR/$DL_FILE_NAME" "$STR_URL" --http1.1 --connect-timeout 20; then
125    /bin/echo "ファイルのダウンロードに失敗しました"
126    exit 1
127  fi
128fi
129
130################################################
131/usr/sbin/pkgutil  --expand-full "$USER_TEMP_DIR/$DL_FILE_NAME" "$USER_TEMP_DIR/EXPAND"
132sleep 1
133/bin/mv "${USER_TEMP_DIR}/EXPAND/${DL_FILE_NAME}/Payload/Microsoft Edge.app" "/Users/${STAT_USR}/Applications/Sites"
134
135################################################
136
137###アプリケーション名を取得
138STR_APP_NAME=$(/usr/bin/defaults read "$STR_APP_PATH/Contents/Info.plist" CFBundleDisplayName)
139if [ -z "$STR_APP_NAME" ]; then
140  STR_APP_NAME=$(/usr/bin/defaults read "$STR_APP_PATH/Contents/Info.plist" CFBundleName)
141fi
142/bin/echo "アプリケーション名:$STR_APP_NAME"
143
144##結果 対象のバンドルIDが無ければ
145if [ "$NUM_POSITION" = "NULL" ]; then
146  /bin/echo "Dockに未登録です"
147  PLIST_DICT="<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>$STR_APP_PATH</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>"
148  /usr/bin/defaults write com.apple.dock persistent-apps -array-add "$PLIST_DICT"
149else
150  ##すでに登録済みの場合は一旦削除
151  /bin/echo "Dockの$NUM_POSITION に登録済み 削除してから同じ場所に登録しなおします"
152  ##削除して
153  /usr/libexec/PlistBuddy -c "Delete:persistent-apps:$NUM_POSITION" "$HOME/Library/Preferences/com.apple.dock.plist"
154  ##保存
155  /usr/libexec/PlistBuddy -c "Save" "$HOME/Library/Preferences/com.apple.dock.plist"
156  ###同じ内容を作成する
157  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION dict" "$HOME/Library/Preferences/com.apple.dock.plist"
158  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:GUID integer $RANDOM$RANDOM" "$HOME/Library/Preferences/com.apple.dock.plist"
159  ## 想定値 file-tile directory-tile
160  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:tile-type string file-tile" "$HOME/Library/Preferences/com.apple.dock.plist"
161  ###↑この親Dictに子要素としてtile-dataをDictで追加
162  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:tile-data dict" "$HOME/Library/Preferences/com.apple.dock.plist"
163  ###↑子要素のtile-dataにキーと値を入れていく
164  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:tile-data:showas integer 0" "$HOME/Library/Preferences/com.apple.dock.plist"
165  ## 想定値 2:フォルダ 41:アプリケーション 169 Launchpad とMission Control
166  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:tile-data:file-type integer 41" "$HOME/Library/Preferences/com.apple.dock.plist"
167  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:tile-data:displayas integer 0" "$HOME/Library/Preferences/com.apple.dock.plist"
168  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:tile-data:parent-mod-date integer $(date '+%s')" "$HOME/Library/Preferences/com.apple.dock.plist"
169  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:tile-data:file-mod-date integer $(date '+%s')" "$HOME/Library/Preferences/com.apple.dock.plist"
170  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:tile-data:file-label string $STR_APP_NAME" "$HOME/Library/Preferences/com.apple.dock.plist"
171  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:tile-data:is-beta bool false" "$HOME/Library/Preferences/com.apple.dock.plist"
172  ###↑この子要素のtile-dataに孫要素でfile-dataをDictで追加
173  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:tile-data:file-data dict" "$HOME/Library/Preferences/com.apple.dock.plist"
174  ###値を入れていく
175  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:tile-data:file-data:_CFURLStringType integer 15" "$HOME/Library/Preferences/com.apple.dock.plist"
176  /usr/libexec/PlistBuddy -c "add:persistent-apps:$NUM_POSITION:tile-data:file-data:_CFURLString string file://$STR_APP_PATH" "$HOME/Library/Preferences/com.apple.dock.plist"
177  ##保存
178  /usr/libexec/PlistBuddy -c "Save" "$HOME/Library/Preferences/com.apple.dock.plist"
179fi
180###
181/bin/echo "処理終了 DOCKを再起動します"
182/usr/bin/killall "Dock"
183
184#################################
185###設定値
186/usr/bin/defaults write "/Users/${STAT_USR}/Library/Preferences/com.microsoft.edgemac.plist" OptionalDataCollectionEnabled -int 0
187
188################################################
189### クリーニング ユーザードメイン
190
191DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Microsoft/EdgeUpdater"
192DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Caches/Microsoft Edge"
193DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Caches/com.microsoft.edgemac"
194DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Caches/com.microsoft.EdgeUpdater"
195DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft/EdgeUpdater"
196DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/ShaderCache"
197DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/Guest Profile"
198DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/GrShaderCache"
199DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/GraphiteDawnCache"
200DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/extensions_crx_cache"
201DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/Crashpad"
202DO_MOVE_TO_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/component_crx_cache"
203
204#################################################
205#ゴミ箱に入れる ユーザードメイン
206function DO_MOVE_TO_DIR_ITEM_TRASH() {
207  if [ -e "$1" ]; then
208    TRASH_DIR=$(/usr/bin/mktemp -d "/Users/${STAT_USR}/.Trash/Edge_XXXXXXXX")
209    /bin/chmod 777 "$TRASH_DIR"
210    /usr/bin/chflags noschg "$1"
211    /usr/bin/chflags nosimmutable "$1"
212    /bin/chmod -N "$1"
213    /bin/mv "$1"* "$TRASH_DIR" 2>/dev/null
214  else
215    /bin/echo "$1""は見つかりませんでした"
216  fi
217}
218#################################################
219#プロファイルに対して処理を行う
220LIST_DIR_NAME=$(/bin/ls "$HOME/Library/Application Support/Microsoft Edge" | /usr/bin/grep "Profile" | /usr/bin/tr '\n' '\0' | /usr/bin/xargs -0 -n 1)
221/bin/echo "プロファイルリスト: ""$LIST_DIR_NAME"
222##スペース区切りでリスト化
223IFS=$'\n'
224read -d "\n" -r -a LIST_SUB_DIR_NAME <<<"$LIST_DIR_NAME"
225/bin/echo "$LIST_SUB_DIR_NAME"
226##リストをループ
227for ITEM_DIR_NAME in "${LIST_SUB_DIR_NAME[@]}"; do
228  /bin/echo "ディレクトリ名:$ITEM_DIR_NAME"
229  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Caches/com.microsoft.edgemac/"
230
231  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/${ITEM_DIR_NAME}/DawnGraphiteCache/"
232  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/${ITEM_DIR_NAME}/DawnWebGPUCache/"
233  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/${ITEM_DIR_NAME}/GPUCache/"
234  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/${ITEM_DIR_NAME}/Service Worker/CacheStorage/"
235  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/${ITEM_DIR_NAME}/Service Worker/ScriptCache/"
236
237  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/GrShaderCache/"
238  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/ShaderCache/"
239  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/Crashpad/"
240  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/GraphiteDawnCache/"
241
242done
243
244#インストール先を開く
245open "/Users/${STAT_USR}/Applications/Sites"
246
247exit 0
AppleScriptで生成しました

|

edgemac用URLのQRコード生成 (GoogleがQRコード生成サービスを停止した対応)


AppleScript サンプルコード

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

AppleScript サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004# edgemac用URLのQRコード生成
005# 前面タブのURLをQRコードにしてHTMLをつけて保存します
006#
007#  com.cocolog-nifty.quicktimer.icefloe
008----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
009use AppleScript version "2.8"
010use framework "Foundation"
011use framework "AppKit"
012use framework "CoreImage"
013use scripting additions
014
015property refMe : a reference to current application
016property refNSNotFound : a reference to 9.22337203685477E+18 + 5807
017
018####################################
019#アプリケーションのバンドルID
020set strBundleID to "com.microsoft.edgemac"
021###エラー処理
022tell application id strBundleID
023  set numWindow to (count of every window) as integer
024end tell
025if numWindow = 0 then
026  return "Windowが無いので処理できません"
027end if
028tell application "Microsoft Edge"
029  tell front window
030    tell active tab
031      activate
032      set strURL to URL as text
033    end tell
034  end tell
035end tell
036
037####################################
038#URLをNSStringに
039set ocidURLStrings to refMe's NSString's stringWithString:(strURL)
040###改行とタブだけは取っておく
041set ocidTextM to ocidURLStrings's stringByReplacingOccurrencesOfString:("\n") withString:("")
042set ocidTextM to ocidTextM's stringByReplacingOccurrencesOfString:("\r") withString:("")
043set ocidTextM to ocidTextM's stringByReplacingOccurrencesOfString:("\t") withString:("")
044set strText to ocidTextM as text
045##
046set ocidURL to refMe's NSURL's alloc()'s initWithString:(strText)
047set strHostName to ocidURL's |host|() as text
048
049####################################
050# QRコード保存先 NSPicturesDirectory
051set appFileManager to refMe's NSFileManager's defaultManager()
052set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSPicturesDirectory) inDomains:(refMe's NSUserDomainMask))
053set ocidPicturesDirURL to ocidURLsArray's firstObject()
054set strSetValue to ("QRcode/URL/" & strHostName) as text
055set ocidSaveDirPathURL to ocidPicturesDirURL's URLByAppendingPathComponent:(strSetValue) isDirectory:(true)
056##フォルダ作成
057set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
058# 777-->511 755-->493 700-->448 766-->502
059ocidAttrDict's setValue:(448) forKey:(refMe's NSFilePosixPermissions)
060set listDone to appFileManager's createDirectoryAtURL:(ocidSaveDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference)
061if (item 1 of listDone) is true then
062  #log "正常処理"
063else if (item 2 of listDone) ≠ (missing value) then
064  set strErrorNO to (item 2 of listDone)'s code() as text
065  set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
066  refMe's NSLog("■:" & strErrorNO & strErrorMes)
067  return "エラーしました" & strErrorNO & strErrorMes
068end if
069#
070set ocidReadMePathURL to ocidPicturesDirURL's URLByAppendingPathComponent:("QRcode/URL/_このフォルダは削除しても大丈夫です.txt") isDirectory:(false)
071set ocidReadMeText to refMe's NSString's stringWithString:("このフォルダは削除しても大丈夫です")
072#
073set listDone to ocidReadMeText's writeToURL:(ocidReadMePathURL) atomically:(true) encoding:(refMe's NSUTF8StringEncoding) |error| :(reference)
074if (item 1 of listDone) is true then
075  #log "正常処理"
076else if (item 2 of listDone) ≠ (missing value) then
077  set strErrorNO to (item 2 of listDone)'s code() as text
078  set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
079  refMe's NSLog("■:" & strErrorNO & strErrorMes)
080  return "エラーしました" & strErrorNO & strErrorMes
081end if
082
083###保存ファイル名
084set strDateNo to doGetDateNo({"yyyyMMddhhmmss", 1})
085set strSaveFileName to ("URL" & "." & strHostName & "." & strDateNo & ".png") as text
086set ocidSaveFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:(strSaveFileName)
087
088
089######################################
090### 色決め 切り捨ての都合上指定のニア
091######################################
092#ダイアログを前面に出す
093set strName to (name of current application) as text
094if strName is "osascript" then
095  tell application "Finder" to activate
096else
097  tell current application to activate
098end if
099tell application "Finder"
100  set the listRGB16bitColor to (choose color default color {0, 0, 0, 1}) as list
101end tell
102##########Color Picker Value 16Bit
103set str16bitR to (item 1 of listRGB16bitColor) as text
104set str16bitG to (item 2 of listRGB16bitColor) as text
105set str16bitB to (item 3 of listRGB16bitColor) as text
106set str16bitA to 65535 as text
107#NSDecimalNumberに変換して計算
108set ocidDecR to refMe's NSDecimalNumber's alloc()'s initWithString:(str16bitR)
109set ocidDecG to refMe's NSDecimalNumber's alloc()'s initWithString:(str16bitG)
110set ocidDecB to refMe's NSDecimalNumber's alloc()'s initWithString:(str16bitB)
111set ocidDecA to refMe's NSDecimalNumber's alloc()'s initWithString:(str16bitA)
112##########Standard RGB Value 8Bit 整数で切り捨て
113set ocid16bit to refMe's NSDecimalNumber's alloc()'s initWithString:("256")
114set ocidMode to (refMe's NSRoundDown)
115set ocidBehaviors to (refMe's NSDecimalNumberHandler's decimalNumberHandlerWithRoundingMode:(ocidMode) scale:(0) raiseOnExactness:(false) raiseOnOverflow:(false) raiseOnUnderflow:(false) raiseOnDivideByZero:(false))
116set ocid8bitR to (ocidDecR's decimalNumberByDividingBy:(ocid16bit) withBehavior:(ocidBehaviors))
117set ocid8bitG to (ocidDecG's decimalNumberByDividingBy:(ocid16bit) withBehavior:(ocidBehaviors))
118set ocid8bitB to (ocidDecB's decimalNumberByDividingBy:(ocid16bit) withBehavior:(ocidBehaviors))
119set ocid8bitA to (ocidDecA's decimalNumberByDividingBy:(ocid16bit) withBehavior:(ocidBehaviors))
120##########NSColorValue Float
121set ocid8bit to refMe's NSDecimalNumber's alloc()'s initWithString:("255")
122#
123set ocidFloatR to (ocid8bitR's decimalNumberByDividingBy:(ocid8bit))
124set ocidFloatG to (ocid8bitG's decimalNumberByDividingBy:(ocid8bit))
125set ocidFloatB to (ocid8bitB's decimalNumberByDividingBy:(ocid8bit))
126set ocidFloatA to (ocid8bitA's decimalNumberByDividingBy:(ocid8bit))
127
128##########12桁までで丸め
129set ocidMode to (refMe's NSRoundDown)
130set ocidBehaviors to (refMe's NSDecimalNumberHandler's decimalNumberHandlerWithRoundingMode:(ocidMode) scale:(12) raiseOnExactness:(false) raiseOnOverflow:(false) raiseOnUnderflow:(false) raiseOnDivideByZero:(false))
131set ocidFloat12R to (ocidFloatR's decimalNumberByRoundingAccordingToBehavior:(ocidBehaviors))
132set ocidFloat12G to (ocidFloatG's decimalNumberByRoundingAccordingToBehavior:(ocidBehaviors))
133set ocidFloat12B to (ocidFloatB's decimalNumberByRoundingAccordingToBehavior:(ocidBehaviors))
134set ocidFloat12A to (ocidFloatA's decimalNumberByRoundingAccordingToBehavior:(ocidBehaviors))
135##
136set numFloat12R to ocidFloat12R's floatValue()
137set numFloat12G to ocidFloat12G's floatValue()
138set numFloat12B to ocidFloat12B's floatValue()
139set numFloat12A to ocidFloat12A's floatValue()
140
141####色指定
142##  色指定値はこちらを利用
143##  https://quicktimer.cocolog-nifty.com/icefloe/2023/06/post-d68270.html
144###色指定する場合
145##  set ocidQrColor to refMe's CIColor's colorWithRed:0.1green:0.75blue:0.26 alpha:1.0
146###バーコードの色をここで定義
147set ocidQrColor to refMe's CIColor's colorWithRed:(numFloat12R) green:(numFloat12G) blue:(numFloat12B) alpha:(numFloat12A)
148#############################
149### 【1】QRバーコード画像生成
150#############################
151####テキストをNSStringに
152set ocidInputString to refMe's NSString's stringWithString:(strText)
153####テキストをUTF8に
154set ocidUtf8InputString to ocidInputString's dataUsingEncoding:(refMe's NSUTF8StringEncoding)
155####CIQRCodeGenerator初期化
156set ocidQRcodeImage to refMe's CIFilter's filterWithName:("CIQRCodeGenerator")
157ocidQRcodeImage's setDefaults()
158###テキスト設定
159ocidQRcodeImage's setValue:ocidUtf8InputString forKey:("inputMessage")
160###読み取り誤差値設定L, M, Q, H
161ocidQRcodeImage's setValue:"Q" forKey:("inputCorrectionLevel")
162###QRコード本体のイメージ
163set ocidCIImage to ocidQRcodeImage's outputImage()
164-->ここで生成されるのはQRのセルが1x1pxの最小サイズ
165##############
166### 色の置き換え
167### 置き換わる色=この場合は黒
168set ocidBlackColor to refMe's CIColor's colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.0
169###CIFalseColorで色を塗ります
170set ocidFilterColor to refMe's CIFilter's filterWithName:("CIFalseColor")
171ocidFilterColor's setDefaults()
172ocidFilterColor's setValue:ocidQrColor forKey:("inputColor0")
173ocidFilterColor's setValue:ocidBlackColor forKey:("inputColor1")
174ocidFilterColor's setValue:ocidCIImage forKey:("inputImage")
175###フィルタをかけた画像をoutputImageから取り出します
176set ocidCIImage to ocidFilterColor's valueForKey:("outputImage")
177###QRコードの縦横取得
178set ocidCIImageDimension to ocidCIImage's extent()
179set ocidCIImageWidth to (item 1 of item 2 of ocidCIImageDimension) as integer
180set ocidCIImageHight to (item 2 of item 2 of ocidCIImageDimension) as integer
181###最終的に出力したいpxサイズ
182set numScaleMax to 500
183###整数で拡大しないとアレなので↑の値のニアなサイズになります
184set numWidth to ((numScaleMax / ocidCIImageWidth) div 1) as integer
185set numHight to ((numScaleMax / ocidCIImageHight) div 1) as integer
186###↑サイズの拡大縮小する場合はここで値を調整すれば良い
187####変換スケール作成-->拡大
188set recordScalse to refMe's CGAffineTransform's CGAffineTransformMakeScale(numWidth, numHight)
189##変換スケールを適応(元のサイズに元のサイズのスケール適応しても意味ないけど
190set ocidCIImageScaled to ocidCIImage's imageByApplyingTransform:(recordScalse)
191#######元のセルが1x1pxの最小サイズで出したいときはここで処理
192##set ocidCIImageScaled to ocidCIImage
193###イメージデータを展開
194set ocidNSCIImageRep to refMe's NSCIImageRep's imageRepWithCIImage:(ocidCIImageScaled)
195###出力用のイメージの初期化
196set ocidNSImageScaled to refMe's NSImage's alloc()'s initWithSize:(ocidNSCIImageRep's |size|())
197###イメージデータを合成
198ocidNSImageScaled's addRepresentation:(ocidNSCIImageRep)
199###出来上がったデータはOS_dispatch_data
200set ocidOsDispatchData to ocidNSImageScaled's TIFFRepresentation()
201####NSBitmapImageRepに
202set ocidQRImageRep to refMe's NSBitmapImageRep's imageRepWithData:(ocidOsDispatchData)
203
204#############################
205### 【2】QRコードの背景部
206###(ホワイトスペースパディング配慮)
207#############################
208##画像サイズ
209set numQRSize to 520 as integer
210##画像生成開始
211set ocidBitmapFormat to refMe's NSBitmapFormatAlphaFirst
212set ocidColorSpaceName to refMe's NSCalibratedRGBColorSpace
213### NSBitmapImageRep
214set ocidCodeBaseRep to (refMe's NSBitmapImageRep's alloc()'s initWithBitmapDataPlanes:(missing value) pixelsWide:(numQRSize) pixelsHigh:(numQRSize) bitsPerSample:8 samplesPerPixel:4 hasAlpha:true isPlanar:false colorSpaceName:(ocidColorSpaceName) bitmapFormat:(ocidBitmapFormat) bytesPerRow:0 bitsPerPixel:32)
215#############################
216### 初期化 CodeBase
217refMe's NSGraphicsContext's saveGraphicsState()
218###Context
219set ocidContext to (refMe's NSGraphicsContext's graphicsContextWithBitmapImageRep:(ocidCodeBaseRep))
220###生成された画像でNSGraphicsContext初期化
221(refMe's NSGraphicsContext's setCurrentContext:(ocidContext))
222###ここが背景色の塗り色
223##色を個別に指定する場合 値は0が暗 1が明
224set ocidSetColor to (refMe's NSColor's colorWithSRGBRed:(1) green:(1) blue:(1) alpha:(1.0))
225ocidSetColor's |set|()
226###画像生成
227refMe's NSRectFill({origin:{x:0, y:0}, |size|:{width:(numQRSize), height:(numQRSize)}})
228####画像作成終了
229refMe's NSGraphicsContext's restoreGraphicsState()
230#############################
231### 【3】QRバーコードパディング処理
232### 1で作ったQRバーコード画像を
233### 2で作った画像にペースト
234###(ホワイトスペースパディング配慮)
235#############################
236###
237set numPxWidth to ocidQRImageRep's pixelsWide()
238set numPxHight to ocidQRImageRep's pixelsHigh()
239###画像合成位置計算パディング配慮
240set numPadSize to (numQRSize - numPxWidth) / 2 as integer
241#############################
242### 初期化 CodeBase
243refMe's NSGraphicsContext's saveGraphicsState()
244###Context
245set ocidContext to (refMe's NSGraphicsContext's graphicsContextWithBitmapImageRep:(ocidCodeBaseRep))
246###生成された画像でNSGraphicsContext初期化
247(refMe's NSGraphicsContext's setCurrentContext:(ocidContext))
248###出来上がった画像にQRバーコードをCompositeSourceOverする
249ocidQRImageRep's drawInRect:{origin:{x:(numPadSize), y:(numPadSize)}, |size|:{width:(numPxWidth), Hight:(numPxWidth)}} fromRect:{origin:{x:0, y:0}, |size|:{width:(numPxWidth), height:(numPxHight)}} operation:(refMe's NSCompositeSourceOver) fraction:1.0 respectFlipped:true hints:(missing value)
250####画像作成終了
251refMe's NSGraphicsContext's restoreGraphicsState()
252#############################
253### 【4】最終的な出力画像生成
254### ArtBoardになる画像の生成
255#############################
256### 背景 ARTBORD
257set ocidBitmapFormat to refMe's NSBitmapFormatAlphaFirst
258set ocidColorSpaceName to refMe's NSCalibratedRGBColorSpace
259### NSBitmapImageRep
260set ocidArtBoardRep to (refMe's NSBitmapImageRep's alloc()'s initWithBitmapDataPlanes:(missing value) pixelsWide:(580) pixelsHigh:(680) bitsPerSample:8 samplesPerPixel:4 hasAlpha:true isPlanar:false colorSpaceName:(ocidColorSpaceName) bitmapFormat:(ocidBitmapFormat) bytesPerRow:0 bitsPerPixel:32)
261#############################
262### 初期化 ArtBoard
263refMe's NSGraphicsContext's saveGraphicsState()
264###Context
265set ocidContext to (refMe's NSGraphicsContext's graphicsContextWithBitmapImageRep:(ocidArtBoardRep))
266###生成された画像でNSGraphicsContext初期化
267(refMe's NSGraphicsContext's setCurrentContext:(ocidContext))
268###ここが背景色の塗り色
269##色を個別に指定する場合 値は0が暗 1が明
270set ocidSetColor to (refMe's NSColor's colorWithSRGBRed:(numFloat12R) green:(numFloat12G) blue:(numFloat12B) alpha:(numFloat12A))
271## 透過の場合
272## set ocidSetColor to refMe's NSColor's clearColor()
273##  白
274## set ocidSetColor to refMe's NSColor's whiteColor()
275ocidSetColor's |set|()
276###画像生成
277refMe's NSRectFill({origin:{x:0, y:0}, |size|:{width:(580), height:(680)}})
278####画像作成終了
279refMe's NSGraphicsContext's restoreGraphicsState()
280#############################
281### 【5】QRコードペースト
282### 3で作ったパディング済みQRコードを
283### 4で作ったArtBoardにペースト
284#############################
285### 初期化 バーコードを ocidArtBoardRep にペースト
286refMe's NSGraphicsContext's saveGraphicsState()
287###ビットマップイメージ
288(refMe's NSGraphicsContext's setCurrentContext:(refMe's NSGraphicsContext's graphicsContextWithBitmapImageRep:(ocidArtBoardRep)))
289###画像合成位置計算
290###左右位置センタリング
291set numLeftPad to ((580 - numQRSize) / 2) as integer
292###左右のパディング幅と同じサイズで上部パディング
293set numbottomPad to (680 - numQRSize - numLeftPad)
294###出来上がった画像にQRバーコードを左右3セル分ずらした位置にCompositeSourceOverする
295ocidCodeBaseRep's drawInRect:{origin:{x:(numLeftPad), y:(numbottomPad)}, |size|:{width:numQRSize, Hight:numQRSize}} fromRect:{origin:{x:0, y:0}, |size|:{width:numQRSize, height:numQRSize}} operation:(refMe's NSCompositeSourceOver) fraction:1.0 respectFlipped:true hints:(missing value)
296####画像作成終了
297refMe's NSGraphicsContext's restoreGraphicsState()
298#############################
299### 【6】テキスト描画
300### 5で生成された画像に対して
301### テキスト画像を描画する
302#############################
303###フォント初期化
304set appFontManager to refMe's NSFontManager
305set appSharedMaanager to appFontManager's sharedFontManager()
306###設定用のレコード
307set ocidTextAttr to (refMe's NSMutableDictionary's alloc()'s initWithCapacity:0)
308###共通項目
309set ocidStyle to refMe's NSParagraphStyle's defaultParagraphStyle
310(ocidTextAttr's setObject:(ocidStyle) forKey:(refMe's NSParagraphStyleAttributeName))
311###画像の明暗判定
312set numColorBD to (numFloat12R + numFloat12G + numFloat12B) as number
313log numColorBD
314if numColorBD > 3.5 then
315  ##明るいバーコード色の時は文字色は黒
316  set ocidTextColor to (refMe's NSColor's colorWithSRGBRed:(0) green:(0) blue:(0) alpha:(1.0))
317  (ocidTextAttr's setObject:(ocidTextColor) forKey:(refMe's NSForegroundColorAttributeName))
318  ##文字色黒の時はドロップシャドウを入れる
319  set ocidShadow to refMe's NSShadow's alloc()'s init()
320  set ocidShadowColor to (ocidTextColor's colorWithAlphaComponent:0.8)
321  (ocidShadow's setShadowColor:(ocidShadowColor))
322  (ocidShadow's setShadowOffset:(refMe's NSMakeSize(1, -1)))
323  (ocidShadow's setShadowBlurRadius:4)
324  (ocidTextAttr's setObject:(ocidShadow) forKey:(refMe's NSShadowAttributeName))
325else
326  ##暗いバーコード色の時は文字色白
327  set ocidTextColor to (refMe's NSColor's colorWithSRGBRed:(1) green:(1) blue:(1) alpha:(1.0))
328  (ocidTextAttr's setObject:(ocidTextColor) forKey:(refMe's NSForegroundColorAttributeName))
329end if
330
331#############################
332###初期化
333refMe's NSGraphicsContext's saveGraphicsState()
334####NSGraphicsContextは透明アートボード
335set ocidContext to (refMe's NSGraphicsContext's graphicsContextWithBitmapImageRep:(ocidArtBoardRep))
336###ArtBoardでNSGraphicsContext初期化
337(refMe's NSGraphicsContext's setCurrentContext:(ocidContext))
338##############
339set ocidText to (refMe's NSString's stringWithString:("URL LINK QR"))
340##
341set ocidFont to (refMe's NSFont's fontWithName:("Helvetica-Bold") |size|:(52))
342(ocidTextAttr's setObject:(ocidFont) forKey:(refMe's NSFontAttributeName))
343(ocidTextAttr's setObject:(-1.8) forKey:(refMe's NSKernAttributeName))
344set ocidTextOrigin to refMe's NSMakePoint((30), (45))
345(ocidText's drawAtPoint:(ocidTextOrigin) withAttributes:(ocidTextAttr))
346##############
347###URLの文字数調べて
348set numCntChar to ((count of (every character of strText)) as list) as integer
349###
350set numFontSize to (round of (24 * (40 / numCntChar)) rounding down) as integer
351(*
352フォントサイズ24で半角40文字程度入るので
353渡されたURLの文字数からフォントサイズを推定 小数点以下は切り捨て
354*)
355if numFontSize > 24 then
356  set numFontSize to 24 as integer
357end if
358###
359set ocidText to (refMe's NSString's stringWithString:(strText))
360# set ocidFont to (refMe's NSFont's fontWithName:("ヒラギノ角ゴシック W3") |size|:(numFontSize))
361##
362set ocidFont to (refMe's NSFont's fontWithName:("CourierNewPSMT") |size|:(numFontSize))
363(ocidTextAttr's setObject:(ocidFont) forKey:(refMe's NSFontAttributeName))
364(ocidTextAttr's setObject:(-1) forKey:(refMe's NSKernAttributeName))
365set ocidTextOrigin to refMe's NSMakePoint((35), (15))
366(ocidText's drawAtPoint:(ocidTextOrigin) withAttributes:(ocidTextAttr))
367(*
368ここのキャラクターIDは
369こちらを参照してください
370https://quicktimer.cocolog-nifty.com/icefloe/cat76056068/index.html
371*)
372set strIconText to (character id 1049758) as text
373set ocidText to (refMe's NSString's stringWithString:(strIconText))
374set ocidFont to (refMe's NSFont's fontWithName:("SFPro-Bold") |size|:(72))
375(ocidTextAttr's setObject:(ocidFont) forKey:(refMe's NSFontAttributeName))
376(ocidTextAttr's setObject:(0) forKey:(refMe's NSKernAttributeName))
377set ocidTextOrigin to refMe's NSMakePoint((460), (30))
378(ocidText's drawAtPoint:(ocidTextOrigin) withAttributes:(ocidTextAttr))
379
380####画像作成終了
381refMe's NSGraphicsContext's restoreGraphicsState()
382
383#############################
384### 【7】画像データ保存
385### 6で生成された画像に対を
386### 指定のフォルダに保存する
387#############################
388####PNG用の圧縮プロパティ
389set ocidNSSingleEntryDictionary to refMe's NSDictionary's dictionaryWithObject:true forKey:(refMe's NSImageInterlaced)
390#####出力イメージへ変換
391set ocidNSInlineData to (ocidArtBoardRep's representationUsingType:(refMe's NSBitmapImageFileTypePNG) |properties|:ocidNSSingleEntryDictionary)
392(*
393NSBitmapImageFileTypeJPEG
394NSBitmapImageFileTypePNG
395NSBitmapImageFileTypeGIF
396NSBitmapImageFileTypeBMP
397NSBitmapImageFileTypeTIFF
398NSBitmapImageFileTypeJPEG2000
399*)
400### 保存
401set ocidOption to (refMe's NSDataWritingAtomic)
402set listDone to ocidNSInlineData's writeToURL:(ocidSaveFilePathURL) options:(ocidOption) |error| :(reference)
403if (item 1 of listDone) is true then
404  log "保存しました"
405  set aliasSaveFilePath to (ocidSaveFilePathURL's absoluteURL()) as alias
406else if (item 2 of listDone) ≠ (missing value) then
407  log (item 2 of listDone)'s localizedFailureReason() as text
408  return "保存に失敗しました"
409end if
410
411
412
413#############################
414### HTML生成 不要な場合は削除可
415doMakeHTML(ocidSaveFilePathURL, strText)
416
417#############################
418### 【8】表示
419#############################
420(*
421###Preview で開く
422tell application "Preview"
423  launch
424  activate
425  open file aliasSaveFilePath
426end tell
427*)
428#####################
429### Finderで保存先を開く
430set appSharedWorkspace to refMe's NSWorkspace's sharedWorkspace()
431set boolDone to appSharedWorkspace's selectFile:(ocidSaveFilePathURL's |path|()) inFileViewerRootedAtPath:(ocidSaveDirPathURL's |path|())
432if boolDone is true then
433  return "処理正常終了"
434else if boolDone is false then
435  log (item 2 of listDone)'s localizedFailureReason() as text
436  return "ファイルのオープンに失敗しました"
437end if
438return
439
440################################
441# 日付 doGetDateNo(argDateFormat,argCalendarNO)
442# argCalendarNO 1 NSCalendarIdentifierGregorian 西暦
443# argCalendarNO 2 NSCalendarIdentifierJapanese 和暦
444################################
445to doGetDateNo({argDateFormat, argCalendarNO})
446  ##渡された値をテキストで確定させて
447  set strDateFormat to argDateFormat as text
448  set intCalendarNO to argCalendarNO as integer
449  ###日付情報の取得
450  set ocidDate to current application's NSDate's |date|()
451  ###日付のフォーマットを定義(日本語)
452  set ocidFormatterJP to current application's NSDateFormatter's alloc()'s init()
453  ###和暦 西暦 カレンダー分岐
454  if intCalendarNO = 1 then
455    set ocidCalendarID to (current application's NSCalendarIdentifierGregorian)
456  else if intCalendarNO = 2 then
457    set ocidCalendarID to (current application's NSCalendarIdentifierJapanese)
458  else
459    set ocidCalendarID to (current application's NSCalendarIdentifierISO8601)
460  end if
461  set ocidCalendarJP to current application's NSCalendar's alloc()'s initWithCalendarIdentifier:(ocidCalendarID)
462  set ocidTimezoneJP to current application's NSTimeZone's alloc()'s initWithName:("Asia/Tokyo")
463  set ocidLocaleJP to current application's NSLocale's alloc()'s initWithLocaleIdentifier:("ja_JP_POSIX")
464  ###設定
465  ocidFormatterJP's setTimeZone:(ocidTimezoneJP)
466  ocidFormatterJP's setLocale:(ocidLocaleJP)
467  ocidFormatterJP's setCalendar:(ocidCalendarJP)
468  # ocidFormatterJP's setDateStyle:(current application's NSDateFormatterNoStyle)
469  # ocidFormatterJP's setDateStyle:(current application's NSDateFormatterShortStyle)
470  # ocidFormatterJP's setDateStyle:(current application's NSDateFormatterMediumStyle)
471  # ocidFormatterJP's setDateStyle:(current application's NSDateFormatterLongStyle)
472  ocidFormatterJP's setDateStyle:(current application's NSDateFormatterFullStyle)
473  ###渡された値でフォーマット定義
474  ocidFormatterJP's setDateFormat:(strDateFormat)
475  ###フォーマット適応
476  set ocidDateAndTime to ocidFormatterJP's stringFromDate:(ocidDate)
477  ###テキストで戻す
478  set strDateAndTime to ocidDateAndTime as text
479  return strDateAndTime
480end doGetDateNo
481
482
483
484####################################
485###### HTML 生成
486####################################
487to doMakeHTML(argImageFileURL, argLinkURL)
488  (*
489  set ocidFilePathStr to refMe's NSString's stringWithString:(strFilePath)
490  set ocidFilePath to ocidFilePathStr's stringByStandardizingPath()
491  set ocidFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidFilePath) isDirectory:false)
492  *)
493  ##保存先パス
494  set strURL to argLinkURL as text
495  set ocidFilePathURL to argImageFileURL
496  set strFilePath to ocidFilePathURL's absoluteString() as text
497  #
498  set ocidContainerDirPathURL to ocidFilePathURL's URLByDeletingLastPathComponent()
499  set ocidFileName to ocidFilePathURL's lastPathComponent()
500  set ocidSaveFileName to ocidFileName's stringByAppendingPathExtension:("html")
501  set ocidSaveFilePathURL to ocidContainerDirPathURL's URLByAppendingPathComponent:(ocidSaveFileName)
502  
503  #######################################
504  ##【1】 HTML 本体ROOT
505  #XML初期化
506  set ocidXMLDoc to refMe's NSXMLDocument's alloc()'s init()
507  ocidXMLDoc's setDocumentContentKind:(refMe's NSXMLDocumentHTMLKind)
508  # DTD付与
509  set ocidDTD to refMe's NSXMLDTD's alloc()'s init()
510  ocidDTD's setName:("html")
511  ocidXMLDoc's setDTD:(ocidDTD)
512  #
513  set ocidRootElement to refMe's NSXMLElement's elementWithName:("html")
514  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("lang") stringValue:("ja")
515  ocidRootElement's addAttribute:(ocidAddNode)
516  
517  #######################################
518  ##【2】head meta部分
519  set ocidHeadElement to refMe's NSXMLElement's elementWithName:("head")
520  #
521  set ocidAddElement to refMe's NSXMLElement's elementWithName:("title")
522  ocidAddElement's setStringValue:("生成QRバーコード")
523  ocidHeadElement's addChild:(ocidAddElement)
524  # http-equiv
525  set ocidAddElement to refMe's NSXMLElement's elementWithName:("meta")
526  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("http-equiv") stringValue:("Content-Type")
527  ocidAddElement's addAttribute:(ocidAddNode)
528  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("content") stringValue:("text/html; charset=UTF-8")
529  ocidAddElement's addAttribute:(ocidAddNode)
530  ocidHeadElement's addChild:(ocidAddElement)
531  #
532  set ocidAddElement to refMe's NSXMLElement's elementWithName:("meta")
533  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("http-equiv") stringValue:("Content-Style-Type")
534  ocidAddElement's addAttribute:(ocidAddNode)
535  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("content") stringValue:("text/css")
536  ocidAddElement's addAttribute:(ocidAddNode)
537  ocidHeadElement's addChild:(ocidAddElement)
538  #
539  set ocidAddElement to refMe's NSXMLElement's elementWithName:("meta")
540  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("http-equiv") stringValue:("Content-Script-Type")
541  ocidAddElement's addAttribute:(ocidAddNode)
542  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("content") stringValue:("text/javascript")
543  ocidAddElement's addAttribute:(ocidAddNode)
544  ocidHeadElement's addChild:(ocidAddElement)
545  #
546  set ocidAddElement to refMe's NSXMLElement's elementWithName:("meta")
547  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("name") stringValue:("viewport")
548  ocidAddElement's addAttribute:(ocidAddNode)
549  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("content") stringValue:("width=720")
550  ocidAddElement's addAttribute:(ocidAddNode)
551  ocidHeadElement's addChild:(ocidAddElement)
552  #
553  set ocidAddElement to refMe's NSXMLElement's elementWithName:("style")
554  ocidAddElement's setStringValue:("body {margin: 10px;background-color: #FFFFFF;}header {width: 540px;border-color: #5c5c5c;border-style: solid;border-width: 1px;border-radius: 0.5cap;padding: 10px;margin: 10px;}article {width: 540px;padding: 20px;margin: 10px;}footer {width: 540px;}footer p {font-size: 8pt;}@font-face {font-family: 'OsakaMonoLocal';src: url('file:///System/Library/AssetsV2/com_apple_MobileAsset_Font7/0818d874bf1d0e24a1fe62e79f407717792c5ee1.asset/AssetData/OsakaMono.ttf') format('truetype');}p {font-family: OsakaMonoLocal;font-size: 14pt;}h3 {font-family: OsakaMonoLocal;font-size: 24pt;}.img_qr {max-width: 520px;}input {width: 480px;max-width: 520px;}")
555  ocidHeadElement's addChild:(ocidAddElement)
556  ocidRootElement's addChild:(ocidHeadElement)
557  ########################################
558  ##【3】ボディ body
559  set ocidBodyElement to refMe's NSXMLElement's elementWithName:("body")
560  
561  ########################################
562  ##【4】ヘッダー header
563  set ocidHeaderElement to refMe's NSXMLElement's elementWithName:("header")
564  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("id") stringValue:("header")
565  ocidHeaderElement's addAttribute:(ocidAddNode)
566  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("class") stringValue:("body_header")
567  ocidHeaderElement's addAttribute:(ocidAddNode)
568  #
569  set ocidH3Element to refMe's NSXMLElement's elementWithName:("h3")
570  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("class") stringValue:("header_h3")
571  ocidH3Element's addAttribute:(ocidAddNode)
572  (ocidH3Element's setStringValue:("QRコード"))
573  ocidHeaderElement's addChild:(ocidH3Element)
574  #
575  set ocidPElement to refMe's NSXMLElement's elementWithName:("p")
576  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("class") stringValue:("header_p")
577  ocidPElement's addAttribute:(ocidAddNode)
578  (ocidPElement's setStringValue:("QRコードの内容"))
579  ocidHeaderElement's addChild:(ocidPElement)
580  #
581  #set ocidBrElement to refMe's NSXMLElement's elementWithName:("br")
582  #ocidHeaderElement's addChild:(ocidBrElement)
583  #
584  set ocidPElement to refMe's NSXMLElement's elementWithName:("p")
585  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("class") stringValue:("header_p")
586  ocidPElement's addAttribute:(ocidAddNode)
587  #
588  set ocidInputElement to refMe's NSXMLElement's elementWithName:("input")
589  ocidInputElement's addAttribute:(refMe's NSXMLNode's attributeWithName:("id") stringValue:("url"))
590  ocidInputElement's addAttribute:(refMe's NSXMLNode's attributeWithName:("type") stringValue:("url"))
591  ocidInputElement's addAttribute:(refMe's NSXMLNode's attributeWithName:("name") stringValue:("url"))
592  ocidInputElement's addAttribute:(refMe's NSXMLNode's attributeWithName:("placeholder") stringValue:(strURL))
593  ocidInputElement's addAttribute:(refMe's NSXMLNode's attributeWithName:("value") stringValue:(strURL))
594  ocidPElement's addChild:(ocidInputElement)
595  ocidHeaderElement's addChild:(ocidPElement)
596  #
597  set ocidPElement to refMe's NSXMLElement's elementWithName:("p")
598  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("class") stringValue:("header_p")
599  ocidPElement's addAttribute:(ocidAddNode)
600  #
601  set ocidAElement to refMe's NSXMLElement's elementWithName:("a")
602  set ocidAddNode to (refMe's NSXMLNode's attributeWithName:("href") stringValue:(strURL))
603  (ocidAElement's addAttribute:(ocidAddNode))
604  set ocidAddNode to (refMe's NSXMLNode's attributeWithName:("target") stringValue:("_blank"))
605  (ocidAElement's addAttribute:(ocidAddNode))
606  set ocidAddNode to (refMe's NSXMLNode's attributeWithName:("class") stringValue:("header_a"))
607  (ocidAElement's addAttribute:(ocidAddNode))
608  (ocidAElement's setStringValue:(strURL))
609  ocidPElement's addChild:(ocidAElement)
610  ocidHeaderElement's addChild:(ocidPElement)
611  #
612  #set ocidHrElement to refMe's NSXMLElement's elementWithName:("hr")
613  #ocidHeaderElement's addChild:(ocidHrElement)
614  
615  #######################################
616  ##【5】メインコンテンツ部 article
617  set ocidArticleElement to refMe's NSXMLElement's elementWithName:("article")
618  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("id") stringValue:("article")
619  ocidArticleElement's addAttribute:(ocidAddNode)
620  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("class") stringValue:("body_article")
621  ocidArticleElement's addAttribute:(ocidAddNode)
622  #
623  set ocidDivElement to refMe's NSXMLElement's elementWithName:("div")
624  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("class") stringValue:("div_qr")
625  ocidDivElement's addAttribute:(ocidAddNode)
626  #
627  set ocidAElement to refMe's NSXMLElement's elementWithName:("a")
628  set ocidAddNode to (refMe's NSXMLNode's attributeWithName:("href") stringValue:(strFilePath))
629  (ocidAElement's addAttribute:(ocidAddNode))
630  set ocidAddNode to (refMe's NSXMLNode's attributeWithName:("target") stringValue:("_blank"))
631  (ocidAElement's addAttribute:(ocidAddNode))
632  set ocidAddNode to (refMe's NSXMLNode's attributeWithName:("class") stringValue:("a_qr"))
633  (ocidAElement's addAttribute:(ocidAddNode))
634  #
635  set ocidImgElement to refMe's NSXMLElement's elementWithName:("img")
636  set ocidAddNode to (refMe's NSXMLNode's attributeWithName:("src") stringValue:(strFilePath))
637  (ocidImgElement's addAttribute:(ocidAddNode))
638  set ocidAddNode to (refMe's NSXMLNode's attributeWithName:("alt") stringValue:("生成したバーコードイメージ"))
639  (ocidImgElement's addAttribute:(ocidAddNode))
640  set ocidAddNode to (refMe's NSXMLNode's attributeWithName:("title") stringValue:("生成したバーコードイメージ"))
641  (ocidImgElement's addAttribute:(ocidAddNode))
642  set ocidAddNode to (refMe's NSXMLNode's attributeWithName:("class") stringValue:("img_qr"))
643  (ocidImgElement's addAttribute:(ocidAddNode))
644  ocidAElement's addChild:(ocidImgElement)
645  ocidDivElement's addChild:(ocidAElement)
646  ocidArticleElement's addChild:(ocidDivElement)
647  #
648  #set ocidHrElement to refMe's NSXMLElement's elementWithName:("hr")
649  #ocidArticleElement's addChild:(ocidHrElement)
650  
651  ########################################
652  ##【6】フッター footer
653  set ocidFooterElement to refMe's NSXMLElement's elementWithName:("footer")
654  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("id") stringValue:("footer")
655  ocidFooterElement's addAttribute:(ocidAddNode)
656  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("class") stringValue:("body_footer")
657  ocidFooterElement's addAttribute:(ocidAddNode)
658  #
659  set ocidPElement to refMe's NSXMLElement's elementWithName:("p")
660  set ocidAddNode to refMe's NSXMLNode's attributeWithName:("class") stringValue:("header_p")
661  ocidPElement's addAttribute:(ocidAddNode)
662  #
663  set ocidAElement to refMe's NSXMLElement's elementWithName:("a")
664  set ocidAddNode to (refMe's NSXMLNode's attributeWithName:("href") stringValue:("https://quicktimer.cocolog-nifty.com/"))
665  (ocidAElement's addAttribute:(ocidAddNode))
666  set ocidAddNode to (refMe's NSXMLNode's attributeWithName:("target") stringValue:("_blank"))
667  (ocidAElement's addAttribute:(ocidAddNode))
668  set strContents to ("AppleScriptで生成しました") as text
669  (ocidAElement's setStringValue:(strContents))
670  ocidPElement's addChild:(ocidAElement)
671  
672  ocidFooterElement's addChild:(ocidPElement)
673  
674  ########################################
675  ##【7】header article  footerをbodyに追加
676  ocidBodyElement's addChild:(ocidHeaderElement)
677  ocidBodyElement's addChild:(ocidArticleElement)
678  ocidBodyElement's addChild:(ocidFooterElement)
679  
680  ########################################
681  ##【8】body をROOTに追加
682  ocidRootElement's addChild:(ocidBodyElement)
683  
684  ########################################
685  ##【9】ROOTをXMLセットしてXMLとしては完成
686  ocidXMLDoc's setRootElement:(ocidRootElement)
687  
688  ########################################
689  ##【10】保存
690  #読み取りやすい表示 データとして保存する
691  set ocidXMLdata to ocidXMLDoc's XMLDataWithOptions:(refMe's NSXMLNodePrettyPrint)
692  #保村
693  set listDone to ocidXMLdata's writeToURL:(ocidSaveFilePathURL) options:(refMe's NSDataWritingAtomic) |error| :(reference)
694  if (item 2 of listDone) = (missing value) then
695    log "保存しました"
696  else if (item 1 of listDone) is false then
697    log (item 2 of listDone)'s localizedFailureReason() as text
698    return "保存に失敗しました"
699  end if
700  
701  ########################################
702  ##【11】開く
703  set aliasSaveFilePath to (ocidSaveFilePathURL's absoluteURL()) as alias
704  tell application "Finder"
705    open location aliasSaveFilePath
706  end tell
707  
708  return true
709end doMakeHTML
710
711
712
713####################################
714###### %エンコード
715####################################
716on doUrlEncode(argText)
717  ##テキスト
718  set ocidArgText to refMe's NSString's stringWithString:(argText)
719  ##キャラクタセットを指定
720  set ocidChrSet to refMe's NSCharacterSet's URLQueryAllowedCharacterSet
721  ##キャラクタセットで変換
722  set ocidArgTextEncoded to ocidArgText's stringByAddingPercentEncodingWithAllowedCharacters:(ocidChrSet)
723  ######## 置換 %エンコードの追加処理
724  ###置換レコード
725  set recordPercentMap to {|+|:"%2B", |=|:"%3D", |&|:"%26", |$|:"%24"} as record
726  ###ディクショナリにして
727  set ocidPercentMap to refMe's NSDictionary's alloc()'s initWithDictionary:(recordPercentMap)
728  ###キーの一覧を取り出します
729  set ocidAllKeys to ocidPercentMap's allKeys()
730  ###取り出したキー一覧を順番に処理
731  repeat with itemAllKey in ocidAllKeys
732    ##キーの値を取り出して
733    set ocidMapValue to (ocidPercentMap's valueForKey:(itemAllKey))
734    ##置換
735    set ocidEncodedText to (ocidArgTextEncoded's stringByReplacingOccurrencesOfString:(itemAllKey) withString:(ocidMapValue))
736    ##次の変換に備える
737    set ocidArgTextEncoded to ocidEncodedText
738  end repeat
739  ##テキスト形式に確定
740  set strTextToEncode to ocidEncodedText as text
741  ###値を戻す
742  return strTextToEncode
743end doUrlEncode
AppleScriptで生成しました

|

[Edge]キャッシュをゴミ箱に入れる(簡易版)


サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002#com.cocolog-nifty.quicktimer.icefloe
003#################################################
004#ユーザープロファイルのキャッシュもゴミ箱に入れます
005###STAT
006STAT_USR=$(/usr/bin/stat -f%Su /dev/console)
007/bin/echo "STAT_USR(console): $STAT_USR"
008
009#################################################
010#アプリ終了
011/usr/bin/osascript -e "tell application id \"com.microsoft.edgemac\" to quit"
012/bin/sleep 1
013##念の為 KILLもする
014/usr/bin/killall "Microsoft Edge" 2>/dev/null
015/usr/bin/killall "Microsoft Edge Helper" 2>/dev/null
016/usr/bin/killall "Microsoft Edge Helper (GPU)" 2>/dev/null
017/usr/bin/killall "Microsoft Edge Helper (Renderer)" 2>/dev/null
018#終了を少しまつ
019/bin/sleep 1
020#################################################
021#ゴミ箱に入れる ユーザードメイン
022function DO_MOVE_TO_DIR_ITEM_TRASH() {
023  if [ -e "$1" ]; then
024    TRASH_DIR=$(/usr/bin/sudo -u "$STAT_USR" /usr/bin/mktemp -d "/Users/${STAT_USR}/.Trash/Edge_XXXXXXXX")
025    /usr/bin/sudo -u "$STAT_USR" /bin/chmod 777 "$TRASH_DIR"
026    /usr/bin/chflags noschg "$1"
027    /usr/bin/chflags nosimmutable "$1"
028    /bin/chmod -N "$1"
029    /bin/mv "$1"* "$TRASH_DIR" 2>/dev/null
030  else
031    /bin/echo "$1""は見つかりませんでした"
032  fi
033}
034#################################################
035#プロファイルに対して処理を行う
036LIST_DIR_NAME=$(/bin/ls "$HOME/Library/Application Support/Microsoft Edge" | /usr/bin/grep "Profile" | /usr/bin/tr '\n' '\0' | /usr/bin/xargs -0 -n 1)
037/bin/echo "プロファイルリスト: ""$LIST_DIR_NAME"
038##スペース区切りでリスト化
039IFS=$'\n'
040read -d "\n" -r -a LIST_SUB_DIR_NAME <<<"$LIST_DIR_NAME"
041/bin/echo "$LIST_SUB_DIR_NAME"
042##リストをループ
043for ITEM_DIR_NAME in "${LIST_SUB_DIR_NAME[@]}"; do
044  /bin/echo "ディレクトリ名:$ITEM_DIR_NAME"
045  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Caches/com.microsoft.edgemac/"
046
047  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/${ITEM_DIR_NAME}/DawnGraphiteCache/"
048  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/${ITEM_DIR_NAME}/DawnWebGPUCache/"
049  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/${ITEM_DIR_NAME}/GPUCache/"
050  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/${ITEM_DIR_NAME}/Service Worker/CacheStorage/"
051  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/${ITEM_DIR_NAME}/Service Worker/ScriptCache/"
052
053  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/GrShaderCache/"
054  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/ShaderCache/"
055  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/Crashpad/"
056  DO_MOVE_TO_DIR_ITEM_TRASH "/Users/${STAT_USR}/Library/Application Support/Microsoft Edge/GraphiteDawnCache/"
057
058done
059
060exit 0
AppleScriptで生成しました

|

Microsoft Edgeアップデート(訂正)

ダウンロード - microsoft20edge20updatev2.zip


AppleScript サンプルコード

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

AppleScript サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#
005#
006#
007# com.cocolog-nifty.quicktimer.icefloe
008----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
009##自分環境がos12なので2.8にしているだけです
010use AppleScript version "2.8"
011use framework "Foundation"
012use framework "AppKit"
013use scripting additions
014property refMe : a reference to current application
015
016
017############################
018### 設定
019############################
020####メインのバンドルID
021set strKeyWord to ("microsoft") as text
022
023set numCntApp to 1
024repeat until numCntApp = 0
025  ##対象プロセスが無くなるまで繰り返し
026  set numCntApp to doAppQuit(strKeyWord)
027  log numCntApp
028  delay 1
029end repeat
030
031################################
032####ダイアログで使うデフォルトロケーション
033tell application "Finder"
034  set aliasContainerDir to container of (path to me) as alias
035  try
036    set aliasDefaultLocation to folder "sh" of folder aliasContainerDir as alias
037  on error
038    set aliasDefaultLocation to folder "bin" of folder aliasContainerDir as alias
039  end try
040end tell
041####UTIリスト
042set listUTI to {"public.zsh-script", "public.bash-script"}
043####ダイアログを出す
044set aliasReadFilePath to (choose file with prompt "Bashファイルを選んでください" default location (aliasDefaultLocation) of type listUTI with invisibles and showing package contents without multiple selections allowed) as alias
045set strReadFilePath to POSIX path of aliasReadFilePath as text
046
047tell application "Finder"
048  set strExtName to (name extension of file aliasReadFilePath) as text
049end tell
050##コマンド整形
051if strExtName contains "zsh" then
052  set strCommandText to "/usr/bin/sudo \"" & strReadFilePath & "\"" as text
053else if strExtName contains "bash" then
054  set strCommandText to "/bin/bash -c '/usr/bin/sudo \"" & strReadFilePath & "\"'" as text
055end if
056################################
057####OSのバージョン
058set ocidProcessInfo to refMe's NSProcessInfo's processInfo()
059set ocidOsVersion to ocidProcessInfo's operatingSystemVersion()
060set numMajorVersion to (item 1 of ocidOsVersion) as integer
061
062###13まで
063if numMajorVersion ≤ 13 then
064  try
065    do shell script strCommandText with prompt "管理者権限が必要です" with administrator privileges
066  end try
067else
068  log numMajorVersion
069  ###14以降
070  try
071    do shell script strCommandText
072  on error
073    return "キャンセルしました"
074  end try
075end if
076
077###############
078#サブルーチン
079###############
080to doAppQuit(argKeyWord)
081  #全プロセス取得して
082  tell application "System Events"
083    #バンドルIDリストにします
084    set listBundleID to bundle identifier of (every application process)
085  end tell
086  #全プロセスで
087  repeat with itemBundleID in listBundleID
088    #対象のドメイン名を含むなら
089    if itemBundleID contains argKeyWord then
090      #バンドルIDでアプリケーションを取得して
091      set ocidResultsArray to (refMe's NSRunningApplication's runningApplicationsWithBundleIdentifier:(itemBundleID))
092      set numCntArray to ocidResultsArray's |count|()
093      repeat with itemNo from 0 to (numCntArray - 1) by 1
094        set ocidRunApp to (ocidResultsArray's objectAtIndex:(itemNo))
095        #通常終了を試みます
096        set boolDone to ocidRunApp's terminate()
097        if (boolDone) is true then
098          log itemBundleID & ":正常終了"
099          #失敗したら
100        else if (boolDone) is false then
101          #強制終了を試みます
102          set boolDone to ocidRunApp's forceTerminate()
103          if (boolDone) is true then
104            log itemBundleID & ":強制終了"
105          else if (boolDone) is false then
106            log itemBundleID & ":終了出来ませんでした"
107          end if
108        end if
109      end repeat
110    end if
111  end repeat
112  #実行後のプロセス数で
113  tell application "System Events"
114    set listBundleID to bundle identifier of (every application process)
115  end tell
116  set numDoneCnt to 0 as integer
117  repeat with itemBundleID in listBundleID
118    #対象のドメイン名を含む数を
119    if itemBundleID contains argKeyWord then
120      set numDoneCnt to numDoneCnt + 1
121    end if
122  end repeat
123  #戻す
124  return numDoneCnt
125end doAppQuit
AppleScriptで生成しました

|

Microsoft Edge updateちょっと直し

ダウンロード - microsoft20edge20updatev2.zip


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

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

サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#
005#
006#
007# com.cocolog-nifty.quicktimer.icefloe
008----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
009##自分環境がos12なので2.8にしているだけです
010use AppleScript version "2.8"
011use framework "Foundation"
012use framework "AppKit"
013use scripting additions
014property refMe : a reference to current application
015
016
017############################
018### 設定
019############################
020####メインのバンドルID
021set strKeyWord to ("microsoft") as text
022
023set numCntApp to 1
024repeat until numCntApp = 0
025  ##対象プロセスが無くなるまで繰り返し
026  set numCntApp to doAppQuit(strKeyWord)
027  delay 1
028end repeat
029
030################################
031####ダイアログで使うデフォルトロケーション
032tell application "Finder"
033  set aliasContainerDir to container of (path to me) as alias
034  try
035    set aliasDefaultLocation to folder "sh" of folder aliasContainerDir as alias
036  on error
037    set aliasDefaultLocation to folder "bin" of folder aliasContainerDir as alias
038  end try
039end tell
040####UTIリスト
041set listUTI to {"public.zsh-script", "public.bash-script"}
042####ダイアログを出す
043set aliasReadFilePath to (choose file with prompt "Bashファイルを選んでください" default location (aliasDefaultLocation) of type listUTI with invisibles and showing package contents without multiple selections allowed) as alias
044set strReadFilePath to POSIX path of aliasReadFilePath as text
045
046tell application "Finder"
047  set strExtName to (name extension of file aliasReadFilePath) as text
048end tell
049##コマンド整形
050if strExtName contains "zsh" then
051  set strCommandText to "/usr/bin/sudo \"" & strReadFilePath & "\"" as text
052else if strExtName contains "bash" then
053  set strCommandText to "/bin/bash -c '/usr/bin/sudo \"" & strReadFilePath & "\"'" as text
054end if
055################################
056####OSのバージョン
057set ocidProcessInfo to refMe's NSProcessInfo's processInfo()
058set ocidOsVersion to ocidProcessInfo's operatingSystemVersion()
059set numMajorVersion to (item 1 of ocidOsVersion) as integer
060
061###13まで
062if numMajorVersion ≤ 13 then
063  try
064    do shell script strCommandText with prompt "管理者権限が必要です" with administrator privileges
065  end try
066else
067  log numMajorVersion
068  ###14以降
069  try
070    do shell script strCommandText
071  on error
072    return "キャンセルしました"
073  end try
074end if
075
076###############
077#サブルーチン
078###############
079to doAppQuit(argKeyWord)
080  #全プロセス取得して
081  tell application "System Events"
082    #バンドルIDリストにします
083    set listBundleID to bundle identifier of (every application process)
084  end tell
085  #全プロセスで
086  repeat with itemBundleID in listBundleID
087    #対象のドメイン名を含むなら
088    if itemBundleID contains argKeyWord then
089      #バンドルIDでアプリケーションを取得して
090      set ocidResultsArray to (refMe's NSRunningApplication's runningApplicationsWithBundleIdentifier:(itemBundleID))
091      set numCntArray to ocidResultsArray's |count|()
092      repeat with itemNo from 0 to (numCntArray - 1) by 1
093        set ocidRunApp to (ocidResultsArray's objectAtIndex:(itemNo))
094        #通常終了を試みます
095        set boolDone to ocidRunApp's terminate()
096        if (boolDone) is true then
097          log itemBundleID & ":正常終了"
098          #失敗したら
099        else if (boolDone) is false then
100          #強制終了を試みます
101          set boolDone to ocidRunApp's forceTerminate()
102          if (boolDone) is true then
103            log itemBundleID & ":強制終了"
104          else if (boolDone) is false then
105            log itemBundleID & ":終了出来ませんでした"
106          end if
107        end if
108      end repeat
109    end if
110  end repeat
111  #実行後のプロセス数で
112  tell application "System Events"
113    set listBundleID to bundle identifier of (every application process)
114  end tell
115  set numDoneCnt to 0 as integer
116  repeat with itemBundleID in listBundleID
117    #対象のドメイン名を含む数を
118    if itemBundleID contains "adobe" then
119      set numDoneCnt to numDoneCnt + 1
120    end if
121  end repeat
122  #戻す
123  return numDoneCnt
124end doAppQuit
AppleScriptで生成しました

|

[Microsoft Edge]execute javascript

202404270454411192x246

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

tell application "Microsoft Edge"
log (execute of (active tab of front window) javascript "document.body.offsetHeight;")
log (execute of (active tab of front window) javascript "document.body.offsetWidth;")
end tell


tell application "Microsoft Edge"
  tell front window
    tell active tab
log (execute javascript "document.body.offsetHeight;")
log (execute javascript "document.body.offsetWidth;")
    end tell
  end tell
end tell

|