ステップからスクリプトへ
スクリプトに切り替えるタイミング
ステップでほとんどのアクションをまかなえます。ステップでは扱えないものが必要になったら、スクリプトに切り替えます。
- 算術演算。たとえば、ウィンドウを現在の位置から 100 ピクセル移動する。
- 部品からのテキストの組み立て。たとえば、今日の日付を含むファイル名。
- 変数を間に挟まずに、組み込み関数のフィールドの中で別の組み込み関数を呼び出す。
- カウンターを使うループ。たとえば「最初の 5 つのウィンドウのそれぞれについて」。
切り替えてもステップが失われることはありません。アクションは、ステップの本文とスクリプトの本文を並べて保持します (ステップ、スクリプト、AutoHotkey)。
コード ビュー
詳細モード。 ステップ エディターの末尾にある コードを表示 で、ステップが保存されている形であるテキストとして表示されます。コードを隠す で再び非表示になります。別のアクションを選択するたびに、非表示の状態で始まります。
- コード ビュー ② で編集すると、テキストが有効になった時点で、上のステップの行が再構築されます。
- テキストを行として表示できない場合 (たとえば「ステップへ移動」形式の もし を使っている場合) は、それがステップを編集する唯一の方法になるため、エディターは コードを表示 リンクなしでコードを表示します。行は、その理由を示すメッセージに置き換えられます (問題)。
- エディターは、行として表示できないテキストを書き換えることはありません。行を編集すると、テキスト内のコメントは保持されません。
テキスト形式そのもの、すべての種類のステップとそのフィールドについては、ステップ エンジンで説明しています。
ステップをスクリプトに変換する
- 記述方法 で スクリプト を選択します。
- アクションにステップがあり、スクリプトの本文が空の場合は、ステップをスクリプトに変換しますか? で変換するかどうかを尋ねられます。変換 をクリックします。
- 変換結果がスクリプト エディターに表示されます。そこで確認して仕上げます。
ステップが レコーダー ページで作成した記録である場合、ダイアログには次の文が加わります: これらのステップは記録です。スクリプトにすると、レコーダーの [再生速度] と [再生時のマウス軌跡の詳細度] は無視されます。待機は記録時の速度で実行され、記録されたすべてのマウス移動が再生されます。 (再生の設定)
変換は一方向です。ステップは元のまま残るため、ステップ に戻すと変わらずに表示されますが、スクリプトをステップに戻すものはありません。
次の場合、変換は提案されません。
- スクリプトの本文に既にテキストがある場合 (上書きされてしまうため)。
- ステップを行として表示できない場合。
- いずれかのステップが 条件を満たす間繰り返す、条件を満たすまで繰り返す、ループを抜ける、ステップを停止 である場合。スクリプトには回数を数えるループしかなく、ループを抜けたりアクションを途中で終了したりするものはありません。
各ステップの変換結果
| ステップ | スクリプト |
|---|---|
| 組み込み関数のステップ | 1 つの文、WindowMaximize(window); |
| 結果の保存先 のあるステップ | name = Builtin(…); |
| 変数を設定 | name = value; |
フィールド内の $name | 名前だけ、name |
| 対象ウィンドウ のような読み取り値 | 呼び出し、ContextGetWindow() |
テキストのフィールド以外にある MouseButton.Primary のような名前付き定数 | 名前そのまま |
| テキスト | バックスラッシュと引用符をエスケープした、引用符付きの文字列 |
| 空のフィールド | 0 や "" のような、型の空の値 |
| もし / それ以外 / 条件の終了 | if (…) { … } else { … } |
| 比較 | a == b などの演算子。結果を反転 は !(…) になります |
| 指定回数繰り返す | i という名前のカウンター (i が使われている場合は i2 など) を使う for ループ |
たとえば、最大化または元に戻すのレシピは次のようになります。
window = ContextGetWindow();
if (WindowIsMaximized(window)) {
WindowRestore(window);
} else {
WindowMaximize(window);
}
注意すべき違いが 1 つあります。ステップでは、どのステップも保存する前に使われた変数は 0 として読み取られます。スクリプトでは、変数はテキスト内で最初に使われる場所より上で代入されている必要があり、そうでないとスクリプトはコンパイルされません (変数)。
記録
マクロ レコーダーでも記録がステップとして表示され、同じように変換する スクリプト ボタンがあります。ステップのまま保持した記録は 再生速度 の設定に従い、変換した記録は記録したとおりに再生されます。