Bundle IDで指定したアプリケーションを隠すAppleScriptです。
アプリケーションの指定
macOS上のアプリケーションは一意に判別できるID「Bundle ID」を持っています。このBundle IDは各アプリケーションのバンドル内のInfo.plistに書かれています。
アプリケーションの名称については、ローカライズ名称を指定できるので、英語環境、フランス語環境、日本語環境で異なるアプリケーション名がFinder上で見えるようにできるので、名称ではなくBundle IDで区別するのが一般的です。
言語環境ごとに名称が変わる代表的なアプリケーションには、「リマインダー」(本当の名称はReminders)、「メモ」(本当の名称はNotes)、「写真」(本当の名称はPhotos)などがあります。
アプリケーションプロセスの隠し方
各アプリケーションのアプリケーションメニューに「隠す」というメニュー項目があり、これを実行することで隠すことができます。AppleScriptからこれに該当する操作は、System Eventsに対して指定のアプリケーションプロセスの可視属性をfalseに設定するというものです。
野蛮かつ強引にメニューを操作するという方法(GUI Scripting)も使えますが、速度や信頼性の面でおすすめしません。
AppleScript名:指定アプリケーションプロセスを隠す(System Events) |
— – Created by: Takaaki Naganoya – Created on: 2020/02/16 — – Copyright © 2020 Piyomaru Software, All Rights Reserved — set pRes to hideAProcessByBUndleID("com.apple.Safari") of me –指定プロセスを隠す on hideAProcessByBUndleID(aBundleID) tell application "System Events" set targProcList to every process whose bundle identifier is aBundleID if targProcList = {} then return false set targProc to first item of targProcList tell targProc set visible to false end tell end tell return true end hideAProcessByBUndleID |
macOS 10.10以降では通常のAppleScriptでCocoaの機能が使えるようになったため、こうしたOS側の機能を用いてもよいでしょう。
むしろ、macOS 10.14以降では各種アプリケーションへの初回命令時にはセキュリティ・ダイアログが表示されて止まるため、Cocoaの機能を利用できたほうがメリットが大きいといえるぐらいです。
AppleScript名:指定アプリケーションプロセスを隠す(Cocoa) |
— – Created by: Takaaki Naganoya – Created on: 2020/02/16 — – Copyright © 2020 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" use scripting additions use framework "Foundation" use framework "AppKit" set pRes to hideAProcessByBUndleID("com.apple.Safari") of me –指定プロセスを隠す on hideAProcessByBUndleID(aBundleID) set appArray to current application’s NSRunningApplication’s runningApplicationsWithBundleIdentifier:aBundleID if appArray’s |count|() > 0 then set appItem to appArray’s objectAtIndex:0 set aRes to (appItem’s hide()) as boolean return aRes else return false end if end hideAProcessByBUndleID |
More from my site
(Visited 376 times, 1 visits today)