メインコンテンツまでスキップ

ステップ エンジン

エンジンが ステップ のアクションは、テキストではなく [[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"