説明
YosemiteのJXAではキー入力をシミュレートすることができます。その際、特殊なキーはkeystroke()メソッドを使って入力することができません。例えばreturnキーやカーソルキー、deleteキーです。この場合はkeyCode()メソッドを使います。
まず、sys = Application("System Events")としてシステムイベントを扱えるオブジェクトを取得します。keyCode()メソッドの最初のパラメーターに入力したい文字のコードを指定します。keyCode(36)とするとreturnキーが入力されます。その他のキーコードについては
GUIスクリプティングで使いたくなる道具のページを参照してください。
keyCode()メソッドでコマンドキーやシフトキーなど修飾キーも組み合わせる場合はkeyCode("36", { using: "command down" })のようにオプションを指定します。1つの修飾キーの場合は、この方法で構いませんが、他のキーも組み合わせる場合は{ using : ["command down", "shift down"] }のように配列形式で指定します。オプションキーの場合は"option down"、コントロールキーの場合は"control down"の文字になります。
var TextEdit = Application("TextEdit");
TextEdit.activate(); // アクティブにする
delay(1); // アクティブになり切り替わるのを少し待つ
sys = Application("System Events");
sys.keystroke("JavaScript"); // 文字を入力する
sys.keyCode(36); // returnキーを入力する
sys.keystroke("Sample Program");