7.8 【エイリアスを作れ】 ん〜、2連敗。これはつらい……。 とりあえず、表題の話。昨日ちょっと書いた、エイリアスを作る話。AppleEventでエイリアス作成がどのバージョンから有効なのかどうかわからないけど、うちで確認できるかぎりでは7.5.5ではだめ、8.0以降ではokという感じだった。7.6.xがどうなのかわからないけど、とりあえずは8.0以降のみ対応でもいいかなと。 「make new alias file at ... to ...」をAppleEventになおすと、「make」はkAECoreSuiteのkAECreateEventに対応し、「new」はkeyAEObjectClassパラメータ、「at」はkeyAEInsertHereパラメータ、「to」はkeyASPrepositionToパラメータにそれぞれ対応する。「alias file」はtypeType、エイリアスを作成する場所(フォルダ)、エイリアスのもとファイルはそれぞれtypeAliasで指定すればいい。エイリアスの名前を変更したい場合はkeyAEPropDataパラメータを使うらしいが、今回は気にしない。 サンプルコードを載せようかなと思ったけど、AppleScript SDKのMoreAppleEventsにあるソースと大して変わらないのでやめ。ま、上記のことが分かっていればそれほど難しいことはないはずだし。 あ、そうだ。1つ注意しなければいけないことは、イベントをおくる際のsendModeかな。Phutみたいに「Finderにドロップしたらエイリアス作成」という場合には、ユーザインタラクションなどを許可してはいけないみたい。replyはないから、kAENoReplyだけにしておくのが安全。 それと関連して、アイコンの取得についても少し。同じサンプルコードを見ると、replyを待つ場合はidleProcというものを指定するように書かれている。ということは、AppleEventを使ってアイコンを取得することもおそらくは可能なのだろう。このあたり、少し調べてみる必要がありそうだ。 昨日ついに8.6をインストールすることができたのだが(ありがとうございます>影山さん)、いきなりGeneva2Osaka設定がデバッガに落ちるのを確認。まいった(^^;; 他のソフトについては今のところ問題なさそうだけど、QT-QにはAppleScriptで保存した場合のファイル名が化けてしまうバグが見つかるわ、Phutにもパレットを閉じた時に一部のメモリが解放されていないバグが見つかるわで、、大変だ……。 |