ステップ エンジン
エンジンが ステップ のアクションは、テキストではなく [[steps]] テーブルを並べた TOML のリストです。
同じ組み込み関数を呼び出し、値と truthy の判定についても同じルールに従います。違いは次のとおりです。
-
各ステップには一意の整数の
idとopがあります:call(fn、args)、set(localとvalue、またはcall = { fn, args })、if、goto、end、repeat/end_repeat、exit_repeat、else/end_if。 -
ifは、id でジャンプする (then_goto/else_goto) か、それらがない場合はend_ifで閉じるブロックを開きます。 -
repeatはtimes、while、untilのいずれか 1 つだけを受け取ります。 -
条件は次のいずれか 1 つです: 組み込み関数の呼び出し (
fn/args)、value(truthy かどうか)、またはleft/rightを伴うcompare("=="、"!="、"<"、"<="、">"、">=")。not = trueを追加すると 条件が反転します。 -
$で始まる文字列引数は変数を読み取ります ("$target")。それ以外はすべて、TOML の種類をそのまま種類とする リテラルで、その種類はスクリプトと同様に、パラメーターと完全に一致する必要があります。 -
{ const = "VirtualKey.MediaPlayPause" }は名前付き定数で、スクリプトと同様に、 ステップのコンパイル時に数値に置き換えられます。"VirtualKey.F5"のように同じつづりの通常の文字列は、テキストのままです。 -
{ fn = "MouseGetCursorX" }のようにfnだけを持つテーブルは、引数を取らない組み込み関数の結果です。 値を置ける場所ならどこでも使えます。- 呼び出しの
args:args = [{ fn = "WindowGetActive" }] - 条件の
left/right:left = { fn = "ContextGetPointCount" }, right = 20 - 条件の
value:value = { fn = "EngineIsSafeMode" } repeatのtimes:times = { fn = "FolderWatchGetCount" }setステップのvalue:value = { fn = "UtilityGetTickCount" }
argsは指定できません。引数が必要な組み込み関数は、先にsetでその結果を変数に入れ、"$name"を 渡します。 - 呼び出しの
-
演算子による式はありません。算術演算や文字列の組み立てにはスクリプト アクションが必要です。
[[steps]]
id = 1
op = "set"
local = "target"
call = { fn = "WindowGetActive", args = [] }
[[steps]]
id = 2
op = "if"
condition = { fn = "WindowContainsTitle", args = ["$target", "Notepad"] }
[[steps]]
id = 3
op = "call"
fn = "WindowMaximize"
args = ["$target"]
[[steps]]
id = 4
op = "end_if"