El motor Pasos
Una acción cuyo motor es Pasos es una lista TOML de tablas [[steps]] en lugar de texto. Llama a
las mismas funciones integradas y sigue las mismas reglas de valores y de veracidad. Las diferencias:
-
Cada paso tiene un
identero único y unop:call(fn,args),set(localmás unvalue, o uncall = { fn, args }),if,goto,end,repeat/end_repeat,exit_repeat,else/end_if. -
Un
ifsalta por id (then_goto/else_goto) o, sin ellos, abre un bloque que cierraend_if. -
repeatrecibe exactamente uno detimes,whileountil. -
Una condición es exactamente una de estas: una llamada a función integrada (
fn/args),value(veracidad) ocompare("==","!=","<","<=",">",">=") conleft/right. Agreguenot = truepara invertirla. -
Un argumento de cadena que empieza con
$lee una variable ("$target"). Todo lo demás es un literal cuyo tipo es su tipo TOML, y ese tipo debe coincidir exactamente con el del parámetro, igual que en Script. -
{ const = "VirtualKey.MediaPlayPause" }es una constante con nombre, que se reemplaza por su número al compilar los pasos, igual que en Script. Una cadena simple escrita igual, como"VirtualKey.F5", sigue siendo texto. -
{ fn = "MouseGetCursorX" }, una tabla que solo contienefn, es el resultado de una función integrada que no recibe argumentos. Se acepta en cualquier lugar donde va un valor:- en los
argsde una llamada:args = [{ fn = "WindowGetActive" }] - en
left/rightde una condición:left = { fn = "ContextGetPointCount" }, right = 20 - en el
valuede una condición:value = { fn = "EngineIsSafeMode" } - en el
timesde unrepeat:times = { fn = "FolderWatchGetCount" } - en el
valuede un pasoset:value = { fn = "UtilityGetTickCount" }
No recibe
args. Para una función integrada que necesita argumentos, guarde primero su resultado en una variable consety pase"$name". - en los
-
No hay expresiones con operadores. La aritmética y la construcción de cadenas necesitan una acción 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"