簡易キーボードマクロ for Mac OS X
Category: Programming
※「catch.jp-wiki」から移動したページです。
Javascript / AppleScriptで作成した、簡易キーボードマクロというか、人間の替わりにキー入力を再現するプログラムです。
ちょいとMacで仕事をすることになり、こういうのが必要になったんだけど、手ごろなが見つからなかったので作ってみました。
AppleScriptのスクリプトエディタでは、Javascriptも動くので、それを利用しています。
決して、多機能ではありません。
もっと良い方法があれば、ぜひ教えてください。
用途
ブラウザの選択中のフォームに、指定した複数行のテキストを自動的に入力します。
キー入力の様子を動画キャプチャするために作成したので、1文字ずつ入力していくようになっています。
対象アプリ
対象アプリを切り替えるには、browser変数に代入する値を下記に変更してください。
- Google Chrome (デフォルト)
- Safari
- Terminal
var browser = "Google Chrome"; // Set your browser "Safari"
スクリプトコードの配布先
下記から、スクリプトエディタへコピペで貼り付けしてください。
起動する
- ブラウザを起動して、フォームを選択しておきます。
- スクリプトエディタを立ち上げます。
- Javascriptを選択しておきます。
- 入手したスクリプトコードをスクリプトエディタに貼り付けます。
- スクリプトを実行します。
マクロの書き方
- キー入力したい文字列は、スクリプトコードのcode_line変数に配列として記述しておきます。
- 各行はシングルクォートで囲み、行ごとにコンマで区切ります。
サンプル
var code_lines = [
'/* hello world */',
'/* |sekainominasann,konnnitiha_^| */',
'print("hello world")']
スクリプトコードを実行すると、次のように入力されます。
/* hello world */
/* 世界の皆さん、こんにちは */
print("hello world")
変換より、キーボードマクロの動作が早すぎる場合は、「_=^=」とウエイトを入れてください。
コマンド
次の文字を含めておくと、各キーの入力を再現します。
- 「|」 日本語変換ON/OFF
- 日本語変換ONのとき
- 「_」 変換する
- 「^」 変換を確定する
- 「$」 下向き矢印
- 「>」 右向き矢印
- 「%」 delete
- 「\」 TAB
- 「=」 ウェイト
Rubyのブロック変数指定で「|」を使用する場合は、コード中で別の記号(\)に置き換えてください。
動作について
入力する文字によって、通常のキーボード入力と異なる動作をする場合があります。 そんな場合は、そのキーをキーコードで入力するように、コードを修正してみてください。
また、不足しているキーがあるとか、機種によってキーコードが違うとか、なんてことがあれば、いい感じに改良してください。
参考:Macのキーコード
- 空白キー 49
- 改行キー 76
-
タブキー 48
-
英数キー 102
-
かなキー 104
カスタマイズ
文字入力のスピード
下記に秒単位で設定します。
var key_delay = 0.08;
改行のスピード
下記のdelayの数値を直接修正します。
delay(0.5); // 改行前
if (j < len -1) {
sys.keyCode(76);// Enterキー
delay(0.8); // 改行後
}