Apple Script でキー入力
Apple Script を勉強してます。AquaSKK のアンインストーラを作って以来なので、かなりご無沙汰です。とりあえず、キー入力を生成するための Handler から作ってみました。
on emit(input_string) tell application "System Events" tell application "TextEdit" to activate -- キー入力を生成する repeat with ch in input_string keystroke ch end repeat end tell end emit -- トグル変換のテスト emit("Katakanaq")
repeat with 変数 in 文字列 でループが作れるのはお手軽ですね。リストも同じように処理できるようです。
keystroke コマンドは文字列も受け付けるので、本当はループじゃなくても良いのですが、AquaSKK *1が処理スピードに負けてとりこぼすことがあったので、keystroke をループで呼び出し、息抜き delay を作り出してます。実際に動かして見ると「ぬらららら」という感じで、なかなか気持ち悪いです。
Ctrl-j や Ctrl-g などのコンビネーションも keystroke コマンドでカバーできます。
on send_ctrl(key) tell application "System Events" tell application "TextEdit" to activate keystroke key using control down end tell end send_ctrl -- Ctrl-j を生成 send_ctrl("j")
あとは、テキストエディットの中身を取得して、期待値と比較して、違ったら文句を言う、という一連の処理を Handler にまとめて、順次テストケースを適用していけば良さそうです。先が見えてきました。
そう言えば
昨日の Oz Meets Jazz で、今年の 1/13 にマイケル・ブレッカーが死去したことを知りました。ピアノトリオが大好物で吹き物系はあまり聴かない僕でも、 Wide Angles だけは持っています。なんとはなしに HMV で試聴した時、Broadband のアフリカンテイスト溢れるテーマに心沸き立つような興奮を感じ、そのままレジへと向かったのでした。御冥福をお祈りします。
*1:というか Text Service Manager かな?