Le moteur Étapes
Une action dont le moteur est Étapes est une liste TOML de tables [[steps]] au lieu d'un texte.
Elle appelle les mêmes fonctions intégrées et suit les mêmes règles de valeurs et de valeur de
vérité. Les différences :
-
Chaque étape a un
identier unique et unop:call(fn,args),set(localplus unevalue, ou uncall = { fn, args }),if,goto,end,repeat/end_repeat,exit_repeat,else/end_if. -
Un
ifsaute soit vers un id (then_goto/else_goto), soit, sans eux, ouvre un bloc fermé parend_if. -
repeatprend exactement l'un detimes,whileouuntil. -
Une condition est exactement l'une des formes suivantes : un appel de fonction intégrée (
fn/args),value(valeur de vérité), oucompare("==","!=","<","<=",">",">=") avecleft/right. Ajouteznot = truepour l'inverser. -
Un argument chaîne commençant par
$lit une variable ("$target"). Tout le reste est un littéral dont le type est son type TOML, et ce type doit correspondre exactement au paramètre, comme en Script. -
{ const = "VirtualKey.MediaPlayPause" }est une constante nommée, remplacée par son nombre à la compilation des étapes, comme en Script. Une simple chaîne écrite de la même façon, comme"VirtualKey.F5", reste du texte. -
{ fn = "MouseGetCursorX" }, une table qui ne contient quefn, est le résultat d'une fonction intégrée sans argument. Elle est acceptée partout où une valeur l'est :- dans les
argsd'un appel :args = [{ fn = "WindowGetActive" }] - dans
left/rightd'une condition :left = { fn = "ContextGetPointCount" }, right = 20 - dans la
valued'une condition :value = { fn = "EngineIsSafeMode" } - dans le
timesd'unrepeat:times = { fn = "FolderWatchGetCount" } - dans la
valued'une étapeset:value = { fn = "UtilityGetTickCount" }
Elle ne prend pas d'
args. Pour une fonction intégrée qui attend des arguments, placez d'abord son résultat dans une variable avecset, puis passez"$name". - dans les
-
Il n'y a pas d'expressions avec opérateurs. L'arithmétique et la construction de chaînes nécessitent une action Script.
[[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"