今度は、アプリケーション命令を使ってみましょう。
AppleScriptでは、操作するアプリケーション(application)を指定するために、次のようなtell文を必ず最初に入力します。
tell application "アプリケーション名"
また、次のように書くとtell application
で指定したアプリケーションに対する命令を終了します。
end tell
このtell application
とend tell
の間を「tellブロック」と呼びます。
tellブロック間には、アプリケーション命令はもちろんのこと、AppleScript命令やOSAX命令も使用できます。
tellブロックの中身は、構文確認を行うと自動的に少し右側にずれます。
これはインデント(indent)と呼ばれ、スクリプトを読みやすくする処理をエディタが行ってくれるわけです。
本書では、アプリケーション命令のサンプルとしてFinderを使います(注1)。
Finderはもっとも多くの人に使われているアプリケーションですから、サンプルには最適でしょう。
Finderを操作するには、次のように入力します。
tell application "Finder"
命令(command)
・
・
・
end tell
この「命令(command)」の部分に、Finderが備えるさまざまなアプリケーション命令を入力します。
では、いくつかの命令を試してみましょう。
tell application "Finder"
open startup disk
end tell
「open」命令でFinderの[ファイル]-[開く]メニューを実行することができます。
命令が1行に収まる場合は、「AppleScriptって何?」で紹介したように1行で入力することも可能です。
tell application "Finder" to open startup disk
操作するアプリケーションや入力する命令によっては、アプリケーションが前面(アクティブ)にないと動作しない場合があります。
また、前面にあるアプリケーションは、バックグラウンドで動作している場合に比べて、AppleScriptの処理を高速に行えることが多いというメリットもあります。
ただし、逆に遅くなる場合もあります。
では、アプリケーションを前面に移動する「activate」命令を使ってみましょう。
tell application "Finder"
activate
open startup disk
end tell
これでFinderを前面にしてから、「open」命令を実行します。
[Finder]-[ゴミ箱を空に...]の処理を行うには「empty」命令を使います。
tell application "Finder"
activate
empty
end tell
実は、これらの命令は英語版OSのFinderのメニュー項目と同じ綴りです。
つまり、どのようなアプリケーション命令が用意されているかは、そのアプリケーションのメニューを見ればだいたいわかるというわけです。
さらにAppleScriptは、メニュー項目にない「隠し命令」を使うことも可能です。
Finderはアプリケーションですから[終了]できるはずですが「ファイル」メニューには[終了]項目がありません。
そこで、以下のようなスクリプトを実行してみます。
tell application "Finder"
quit
end tell
このquit命令でFinderを終了できます。
Finder以外のアプリケーションが起動していない場合は、自動的にFinderが再起動されます。
DockのFinderアイコンをクリックしても再起動できます(注2)。