make alias at《作成する場所》to《元のファイル》
これが作る命令の基本です。これで、指定したファイルのエイリアスを、指定の場所に作成してくれるのです。−−では、簡単な応用例を一つあげておきます。
tell application "Finder" make alias at desktop to control panel "モニタ" of control panels folder end tellこれはどういうことか、わかりますか? これを実行すると、「モニタ」コントロールパネルのエイリアスがデスクトップにできるのです。
この「make」命令は、実をいえばエイリアス以外のことにも使えます。例えば、フォルダの作成なんかにも有効なのです。
tell application "Finder" make folder at desktop end tellこれは、フォルダを自動作成するスクリプトの例です。これはエイリアスよりもっと簡単。エイリアスと違ってフォルダは「to 〜」の部分がいらないので、わかりやすいでしょう?
「make」命令は、このようにオブジェクトを作るためのもっとも基本となる命令なのです。
こういうときに多用されるのが「ドラッグ&ドロップ」というものです。デスクトップでアイコンを別のアイコンに重ねると、ドロップしたアプリケーションでファイルを開いたりしますね? あんな具合に、作りたいエイリアスのアイコンを重ねると自動的にエイリアスができるようになれば、とても便利でしょう。
こういう「ドラッグ&ドロップ」を行なうのに使うのが「open」ハンドラというものです。これは、こんな形をしています。
on open《変数》 …… 実行する命令 …… end openこの「変数」というところには、ドラッグ&ドロップしたファイルのリストが自動的に収められるようになっています。
前者は、今まで作ったスクリプトのことですね。単に命令を書いて「実行!」とすれば、そのまま全部実行していました。後者はちょっとわかりにくいでしょうが、HyperTalkなどで使われているやり方のことです。ユーザーがマウスを押したりすると、それに対応したルーチンが自動的に動き出すわけですね。こうしたルーチンのことを「ハンドラ」って呼んでるのです。
つまり「open」は、ドラッグ&ドロップでファイルを開いたときに自動的に呼び出されるハンドラというわけです。AppleScriptでは、このように、実行させると自動的に動作するスクリプトと、各種のイベントに対応して呼び出されるハンドラとが混在しています。そして、ハンドラは、通常スクリプトを実行した際には全く働きません。あくまでそのハンドラに対応した操作が行なわれて、初めて動くのです。
on open drop_items tell application "Finder" make alias at desktop to drop_items end tell end openこれは、スクリプトエディタで「実行」ボタンを押しても全く動きません。さっきいったように、これはドラッグ&ドロップしたときに呼び出されるハンドラですから、普通に「実行」とやっても動かないのです。
では「保存...」メニューを選んで保存用ダイアログを出し、下に見える「種類」ポップアップメニューから「アプリケーション」を選んでください(MacOS 9場合は「Classicアプリケーション」「MacOS Xアプリケーション」のいずれか)。すると更に下に2つのチェックボタンが現われるので、「初期画面を表示しない」というのだけONにして保存します。−−これで、ドラッグ&ドロップ形式のアプリケーションが作成されます。
よく見ると、スクリプト編集プログラムで作った普通のアプリケーションのアイコンとはちょっと形が違っているのがわかるはずです。こうしたドラッグ&ドロップ形式のアプリケーションのことを「Droplet(ドロップレット)」と呼んでいます(普通のアプリケーションは、「Applet(アプレット)」といいます)。
作成したDropletに、ファイルやアプリケーションのアイコンをドラッグ&ドロップしてみてください。それらのエイリアスが自動的にデスクトップへと作成されるはずです。驚くのは、複数のアイコンをまとめてドラッグすると、ちゃんとそれら全てのエイリアスを作ってくれることです。なんだか不思議な感じがしますね。そうした処理なんて全然してないのに、複数のエイリアスが自動的に作れてしまうなんて…。