AppleScript
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/05/13 07:49 UTC 版)
アプリケーション操作対象
アプリケーションの操作による作業の自動化や、複数のアプリケーションの操作によるソフトウェア・ロボットの構築が可能であるが、操作対象の種類によって利用する技術や手法が変わる。
ローカルアプリケーション
Safariやコンタクト、カレンダーなどのmacOS標準添付アプリケーションの多くがAppleScriptからのコントロールに対応しており、主要機能にアクセスできる。
ただし、対応アプリケーションであっても機能のすべてがAppleScriptに解放されているわけではない。AppleScript用語辞書に定義されている範囲のみである。
そのため、前述のGUI Scriptingによるメニューやボタンなどの強制操作が時と場合によって必要になる。この強制操作機能はOSのデフォルト設定ではオフになっているほか、アプリケーション/アプレット/Scriptごとに許可/禁止するようになっている。
UNIXコマンド
do shell scriptコマンドでBSD (UNIX) レイヤー上のコマンドを呼び出すことができる[14]。ただし、Terminal.app上とdo shell scriptコマンドでは設定されている環境変数が異なるため、Terminal.app上で実行できていた処理ができなくなる場合がある。特に、指定したコマンドにパスが通っていないことや、カレントディレクトリが異なること等はエラーの原因となる。これは環境変数の内容を明示的に指定することや、利用コマンドをフルパスで表記することで回避できる(環境変数内容はenvコマンドを実行して確認できる)。
リモートアプリケーション
macOS標準装備の「リモートApple events」の機構を用いて、TCP/IPネットワーク(主にLAN)内の他のMac上のアプリケーションをコントロールできるようになっている。ただし、セキュリティ確保のためmacOS標準装備のアプリケーションの多くは、この機能が禁止されているほか、OSのデフォルト設定ではリモートApple eventsはオフになっている。
1台のMacでは処理が追いつかない場合、この機構を用いて複数台のMacに仕事を割り振り分散処理を行うことができる。また、Mac上で稼働する仮想環境上でmacOSを動作させ、仮想環境との間での分散処理も可能である[15]。
Webサービス
SOAP、XML-RPCを呼び出すための命令が標準で装備されている(call soap、call xmlrpc)[16][17][18][19][20]。Cocoaの機能を用いてRESTful APIを呼び出すことも可能である[21]。
これらのサービスが存在しないサイトに対しても、Safariのdo JavaScriptコマンド経由で操作したり、GUI Scriptingで強制的に操作することで、Webサービスにログインして必要な情報を取得するなどの処理が可能である。
iOSアプリケーション
macOS 11.0以降、Apple Silicon Mac上ではiOS用のアプリケーションがそのまま動作している。このため、Apple Silicon Mac上で動作するiOSアプリケーションをAppleScriptから操作することも可能になった。専用の用語辞書を持たないiOSアプリケーションに対しては、GUI Scripting経由で操作するが、macOSアプリケーションのようにオブジェクト階層をたどれる作りになっていないため、新たなノウハウが必要である。
Apple純正のメモなどのアプリケーションでは、macOS用とiOS用がiCloud経由でデータのシンクロを行うため、macOS上でデータの更新を行うとiOS側にもそれが反映される。これを利用して、iOS側に大量のデータを登録したい場合にMac上でAppleScriptなどによってデータを追加するといった方法が可能である。また、iPhoneとひもづけされたMacからAppleScriptを用いて電話をかけたりSMSメッセージを送信したりもできる[22]。
iOSシミュレータ上で動くiOSアプリケーションもGUI Scriptingにより操作や情報の取得などが可能である。そのため、AppleScriptからシミュレータ上のiOSアプリを操作し、操作テストを実施して段階ごとに画面キャプチャを記録することも行われている。
各種フレームワーク
Mac OS X v10.10以降では、Apple純正およびサードパーティー製CocoaフレームワークをAppleScriptから直接呼び出すことが可能となっている[23]。また、コンタクト(住所録)やカレンダーの情報をフレームワーク経由で検索・操作できるようになった[24]。iTunes Libraryの検索もiTunes.app経由やiTunes Music Library.xmlを検索するよりも高速に行える。
AppleScript Libraries
Mac OS X v10.9以降で、AppleScript自体をライブラリ化して再利用できるようになった。さらに、このライブラリにはAppleScript用語辞書を持たせることが可能なため、AppleScriptの命令語をAppleScriptで記述したライブラリによって拡張することが可能である。
ショートカット
macOS 12以降では、iOS系のOSから移植された自動化ツール「ショートカット」(Shortcuts.app)が利用できる。このツール自体がAppleScriptからの操作に対応しており、指定のショートカット(ユーザーが定義した自動化ワークフロー)を実行できるほか、Shortcuts.appが起動していない状態でも、AppleScriptからの実行専用バックグラウンドツール「Shortcuts Events」を指定してショートカットの実行が可能。
Siri
AppleScriptから音声エージェント「Siri」を呼び出すAppleScriptライブラリ「AgentCallerLib」がPiyomaru Softwareより提供(電子書籍の付録として提供)されており、指定の文字列をSiriに渡して実行できるようになった。コマンドの冒頭に「Hey Siri」を書く必要はない。同ライブラリは、macOS 12以降をサポートしている。
- ^ JavaScript for Automation Release Note
- ^ 林信行の「Leopard」に続く道 第5回:System 7で幕をあけた激動の1990年代(後編)
- ^ AppleScript Users ML
- ^ AppleScript Language Guide Keywords
- ^ Scripting Additions for Mac OS X
- ^ macOS Mojave 10.14 Release Notes
- ^ “Mac Automation Scripting Guide - Automating the User Interface”. 2016年5月29日閲覧。
- ^ “AppleScript Overview - AppleScript Utilities and Applications - System Events and GUI Scripting”. 2016年5月29日閲覧。
- ^ “OS X: Using AppleScript with Accessibility and Security features in Mavericks”. 2016年5月29日閲覧。
- ^ “GUI Scripting”と”UI element Scripting”
- ^ 【基礎】アプリケーションの操作は、用語辞書に書いてあるとおり記述しないと動かない
- ^ AppleScriptObjC Release Notes
- ^ AppleScript sorting performance comparison
- ^ Technical Note TN2065: do shell script in AppleScript. Mac Developer Library. Apple, 2006-03-23.
- ^ ParallelesにゲストOSとしてインストールしたOS XをAppleScriptで制御
- ^ 郵便専門ネットでバージョン番号を取得
- ^ 郵便専門ネットでXML-RPC経由でJISコード(5桁、6桁どちらでも)から、その市区町村に属している郵便番号のリストを取得
- ^ 郵便専門ネットで道府県のコード(地方公共団体コードの先頭2文字)から都道府県名を返す
- ^ 郵便専門ネットで引数に指定した郵便番号で何件ヒットするのかをint型で返す
- ^ 郵便専門ネットでXML-RPC経由で郵便番号を6桁(チェックデジット付き)の全国地方公共団体コード/JISコード/市町村コードに変換
- ^ REST APIに対してGET、POST、PUT、DELETEのmethodを呼び出す
- ^ AppleScriptから電話にアクセスする
- ^ ZipZap frameworkを使ってZipアーカイブ内の情報を取得
- ^ Contactsに登録してある自分の写真をPNGでデスクトップに保存する
- ^ AppleScript Release Notes 10.11 Changes Folder Actions
- ^ OS X 10.11.5+Safari 9.1.1以降で、新たなAS制限機能が増える
- ^ tccKitで指定Bundle IDのアプリケーションの「オートメーション」認証状況を取得
固有名詞の分類
Mac OS |
AppleShare オプションキー Preferred Executable Format Hierarchical File System AppleScript |
アップルコンピュータ |
Nitro Core Image Apple Battery Charger Apple Store AppleScript |
スクリプト言語 |
Kross ActionScript UnrealScript REBOL AppleScript |
- AppleScriptのページへのリンク