あまつぶ

3.15 12:30 【記録、解決】

 AppleEventの記録、やっとできた。IMのRecording AppleEventsを幾度となく読み返したが原因がわからず、なにか参考になる情報はないかとWebを彷徨い……、自分で解決するのは無理かなぁとMLに質問を出してみたのだが、その3時間後、めでたく解決した。
 記録可能なAppleEventは「自分自身に対して」送られたもので、この「自分自身」というのがポイント。自分に送るのだから自分のProcess Serial Numberを調べてそれをターゲットに指定してやればいいのだろうと思ったのだが、これでは記録されない。highLongOfPSNを0に、lowLongOfPSNをkCurrentProcessにしたものをターゲットにしないとだめらしい。
 確かに考えてみると、自分自身のProcess Serial Numberに対して送った場合には、他のアプリケーションから送られてきたイベントとまったく区別がつかない。だからおそらく「自分から自分に対して送ったんだよ」ということをApple Event Managerに伝えてやる必要があるということだろう。
 おそらくはIMのどこかにちゃんと書いてあるんだろうけど(Process Managerも読まないといけなかったのかな?)、これはやられたなぁ。最初からサンプルコードからソースを拾ってきてやっていたらはまらなかったんだろうけど、「あ、自分自身? だったらカレントプロセスのProcess Serial Numberを調べてやればokかな」とやってしまったのがいけなかったか。ま、サンプルコードをそのまま使っていたらこんなことには気付かなかっただろうから逆によかったのかも知れないけど(^^;;

 なんとか記録ルーチンが動くようになったのでさらにいくつか命令を追加してちょっとバグを修正したところで1.00b7をリリース。なぜかCopy命令が正しく動いてくれなかったりしてそれが謎なんだけど(自分自身がフロントプロセスの状態じゃないとクリップボード関係の命令は使えないのかな??)それ以外はだいぶよくなったと思う。サンプルスクリプトもつけることができたし。
 あとはファイル名を処理するような命令を追加してみると便利かも知れないなと思う。記録可能になったのでQTのエフェクトについても記録可能にできたらいいんだけどちょっと難しそうかな。ものによってパラメータがいろいろあるし、数字でパラメータを指定してエフェクトを実行させる方法も知らないしなぁ(^^;; ま、1.0正式版では無理にしてもその後のバージョンではサポートできるようにしたいと思いつつ。
 アプレットやドロップレットの書き出しは、記録したイベントをコンパイル済みスクリプトにしてやって、OSAStoreでファイルに書き出して'SIZE'リソース、'CODE'リソースを追加してやればいいらしいというところまではわかった。'CODE'リソースにはおそらく保存されているスクリプトを読み込んでOSAExecuteで実行するためのプログラムを入れておくのかな。ま、まだなにもわかってないし、一通り形になったらScripting Componentsを読むことにしようかな。

 そういえばセンバツの組み合わせが決まったんだっけ? 1回戦でいきなりPLと横浜があたるとかなんとか。見に行けたら見に行きたい気もするけどテレビで見た方が楽か(笑)。
 とりあえず例によって浜田高校を応援しようかな……と思ったら1日目の第1試合なのか(^^;;;

to March 14, 1999 ↑ to March index → to March 16, 1999