数值、布尔、坐标、文本
类型变量的引用和表达式计算,最终会被解析为整数。{数值}){布尔?}、{坐标.x}、{$文本}、{计时器:}
+
拼接变量与字符串,最终结果将被解析为一个完整字符串。例如:"数量:" + {count}
int 是最常用的变量类型,用于存储整数数值,如 10、-5、640
等。它在大多数节点中都有应用,特别适用于坐标、时间、计数器、循环次数、窗口宽高等。
变量可以在运行前进行声明并初始化,声明的变量会在每次宏运行开始时自动重置为初始值。
在程序运行过程中,也可以临时为未声明的变量赋值,此变量将自动创建添加到变量池中,但仅在本次运行期间有效,运行结束后会被释放,不会被保存。
如果引用了尚未存在于变量池中的变量,系统将默认赋值为 0。
{变量}{a} + 5、({a} + {b}) / 2Abs({x}) 绝对值,Max({a}, {b}) 取最大,Pow({a}, 2)
平方,Pow({a}, 0.5) 开平方等等"识别结果为:" + {result}
bool 是布尔类型变量,用于表示逻辑值 true(真)或 false(假),常用于条件判断、开关状态、流程控制等逻辑场景中。
变量可以在运行前进行声明并初始化,声明的变量会在每次宏运行开始时自动重置为初始值。
在程序运行过程中,也可以临时为未声明的变量赋值,此变量将自动创建添加到变量池中,但仅在本次运行期间有效,运行结束后会被释放,不会被保存。
如果引用了尚未存在于变量池中的布尔变量,系统将默认使用值 false。
{变量?}true 会被当作 1,false 会被当作 0,可参与数值运算。{a} > 5 || {开关?}、{a} < 3 && !{已完成?}{变量?} 会被解析为文本 "true" 或
"false",例如:"状态:" + {开关?}
point 是二维坐标类型变量,包含 x 和 y 两个整数分量,常用于描述屏幕位置、图像中心点、鼠标目标等。
变量可以在运行前进行声明并初始化,声明的变量会在每次宏运行开始时自动重置为初始值。
在程序运行过程中,也可以临时为未声明的变量赋值,此变量将自动创建添加到变量池中,但仅在本次运行期间有效,运行结束后会被释放,不会被保存。
如果引用了尚未存在于变量池中的坐标变量,系统将默认使用值 0,0。
{变量.x}、{变量.y}{目标.x} + 10、{鼠标.y} - 5"x,y" 字符串,例如:"位置:" + {目标.x} + "," + {目标.y}string 是文本类型变量,用于存储任意字符串内容,常用于识别结果、文件路径、描述信息等。
变量可以在运行前进行声明并初始化,声明的变量会在每次宏运行开始时自动重置为初始值。
在程序运行过程中,也可以临时为未声明的变量赋值,此变量将自动创建添加到变量池中,但仅在本次运行期间有效,运行结束后会被释放,不会被保存。
如果引用了尚未存在于变量池中的字符串变量,系统将默认使用空字符串 ""。
{$变量}0)"识别到:" + {$内容}图片变量用于存储图片,支持 JPG、PNG 等常见格式,用于模板识图。
图片可以通过截图、路径选择和节点动态赋值等方式添加,并自动保存到当前宏的 img 文件夹中。
图片可以随意更改变量名,模板找图输入图片名称即可完成调用,在识别区域内找到这个图片所在位置并进行后续点击或赋值坐标等操作。
列表变量用于存储一组同类型的数据,包括 int、bool、point、string 和图片。可通过索引访问具体元素,适用于批量操作或循环处理。
各类型列表的标准引用格式如下:
{变量名[索引]}{变量名[索引]?},计算时 false => 0,true => 1;拼接时
false => "false",true => "true"
{变量名[索引].x}、{变量名[索引].y}{$变量名[索引]},如
"123" => 123,"3.1415926" => 3,非数字内容转换为 0
索引支持任意复杂运算和变量嵌套,如 {列表[{a}+1]}、{列表[({b}+2)/3]},括号与嵌套层数不限。
若索引越界或变量不存在,将返回默认值:int 为 0,bool 为 false,point 为 0,0,string 为空字符串。
图片列表变量仅用于“列表找图”节点:在指定区域内依次匹配整个图片列表,返回匹配最高的图片的索引。
if 节点用于根据布尔变量的值决定是否执行其子节点,是最基本的流程控制方式。
当 if 条件为 true 时,执行其所有子节点;否则跳过。
if 节点可单独使用。else if 与 else 节点不能独立存在,必须紧跟在 if 或 else if
节点之后,作为其兄弟节点(同一层级)。else if 分支。true 的分支,其余全部跳过。if 的子节点中继续使用 if 判断。├ if │└ 执行内容A(若条件为真) └ else └ 执行内容B(若条件为假)
├ if │└ 执行内容A ├ else if │└ 执行内容B ├ else if │└ 执行内容C └ else └ 执行内容D
上述结构中,一旦某个条件满足,将仅执行对应的子节点,其它分支将全部跳过。
for 循环用于重复执行指定次数的操作,适用于已知循环次数的任务。
每次循环时,当前循环次数减 1 的结果会赋值给指定 int 变量(即从 0 开始),可用于访问列表索引等操作。
注意:循环次数支持使用变量,但仅在循环开始时读取一次。 如果在循环过程中该变量发生变化,并不会影响已设定的循环次数。
├ for (执行 5 次) │└ 执行内容A └ 执行内容B
while 循环用于基于布尔变量的值反复执行某段操作,适用于需实时判断的场景。
每次循环开始前都会重新判断一次布尔变量的值。
只要该变量为 true,就会继续执行子节点;一旦变为 false,立即跳出循环。
每次循环时,当前循环次数减 1 的结果会赋值给指定 int 变量(即从 0 开始),可用于访问列表索引等操作。
├ while (开关为 true) │└ 执行内容A └ 执行内容B
foreach 循环用于遍历任意列表变量(int、bool、point、string、图片)。
每次循环时,当前元素的值会赋值给对应类型的单值变量。
同时,当前循环次数减 1 的结果会赋值给一个 int 变量(即从 0 开始),可用于作为索引引用等操作。
当列表为空或不存在时,循环不会执行。
├ foreach (变量 in 列表) │└ 执行内容A └ 执行内容B
Tip 小技巧:可以使用 foreach 遍历图片列表,将每个图片依次赋值给图片变量,再结合模板找图节点实现循环识图点击,这样只需两个节点即可完成多个模板的依次查找与操作。
break 节点用于立即跳出当前循环。
一旦执行到该节点,将终止所在循环的剩余部分并跳转到循环之后继续执行。
只能跳出一层循环,若嵌套多层循环,只会跳出最内层。
仅适用于当前宏中的循环结构。若是在同步执行的指令块中调用,也可以跳出其所在的循环;但异步执行的指令块、或另一个宏中的循环无法被跳出。
注意:不要将此节点放在循环外,否则在非循环情况下执行到时会直接结束当前宏。
switch 必须作为根节点,case 节点必须是其直接子节点,不能插入其他类型节点,否则整个结构将被跳过。
需要执行的操作应放在对应 case 节点的子节点中。
default 节点(如有)必须位于所有 case 节点之后。
执行时只会匹配并执行一个符合条件的 case 或 default 分支。
匹配规则:
case,匹配成功后立即执行其子节点。case 中选择相似度最高者执行。default(如有)。嵌套规则:每个 case 节点下可包含任意逻辑节点(包括嵌套的 switch 结构)。
└ switch(数值变量"Score", 匹配精度:100%)
├ case(100)
│ └ 执行内容A
├ case(80)
│ └ 执行内容B
└ default
└ 执行内容C
被赋值的 int 变量无需预先声明。实际上,所有赋值类型的变量都可以不声明,系统在赋值时会自动创建,后续节点也能正常读取该变量的值。
在运算区域中,直接书写普通的数学表达式即可。表达式中的数字可使用 int 类型变量替代,实现动态计算。
所有变量都可用于计算,bool变量运算时 false => 0,true => 1。
int还可以保存窗口句柄,在"窗口操作"和"后台识别"中可调用句柄变量。
{变量名}{变量名?}(false => 0,true => 1){变量名.x} 和 {变量名.y}{$变量名}("123" => 123,"3.1415926" => 3,"哈哈" => 0){变量名[索引]}{变量名[索引]?}{变量名[索引].x}、{变量名[索引].y}{$变量名[索引]}{计时器名:}(单位为毫秒,例如 1.3 秒 = 1300ms)说明:索引从 0 开始,[] 中可以写表达式,也可以引用变量,支持括号嵌套和运算。
+):2 + 3 => 5-):5 - 2 => 3*):4 * 3 => 12/):10 / 2 => 5(结果可为浮点)%):10 % 3 => 1&):6 & 3 => 2|):6 | 3 => 7^):2 ^ 3 => 1Pow(2, 3) => 8(指数运算)Sqrt(9) => 3(平方根)Abs(-5) => 5(绝对值)Max(3, 8) => 8(返回较大值)Min(3, 8) => 3(返回较小值)Ceiling(3.2) => 4(向上取整)Floor(3.8) => 3(向下取整)Sin(3.14159 / 2) => 1(正弦,单位为弧度)Cos(0) => 1(余弦)Tan(3.14159 / 4) => 1(正切)Log(10, 10) => 1(对数,第一个参数为值,第二个为底)Exp(1) => 2.718...(e 的指数)Truncate(3.8) => 3(去除小数部分)Sign(-7) => -1(返回正负符号:正数为 1,负数为 -1,0 为 0)Acos(1) => 0(反余弦)Asin(0) => 0(反正弦)Atan(1) => 0.785...(反正切)==:等于,例如 5 == 5 => 1!=:不等于,例如 5 != 3 => 1>:大于,例如 5 > 3 => 1>=:大于等于,例如 5 >= 5 => 1<:小于,例如 3 < 5 => 1<=:小于等于,例如 3 <= 3 => 1&&:逻辑与,例如 1 && 0 => 0||:逻辑或,例如 1 || 0 => 1!:逻辑非,例如 !1 => 0bool 变量用于表示逻辑值 true 或 false,赋值时支持多种表达形式,以下为常见三种方式:
可通过两个整数之间的比较结果生成布尔值。
支持的比较符:
>(大于)<(小于)==(等于)>=(大于等于)<=(小于等于)!=(不等于)可直接对多个 bool 变量进行 &、|、! 运算:
&:两个变量都为 true,结果才为 true|:任意一个变量为 true,结果为 true!:逻辑取反,只能对一个变量使用支持 and、or、not 关键字,但建议加上括号避免歧义:
示例:({变量1?} and {变量2?}) or not {变量3?}
{变量1?} && {变量2?} || {变量3?}
如果变量1 为 false,变量2 和 3 为 true,则最终结果为 true。
若使用括号 {变量1?} && ({变量2?} || {变量3?}),则先执行括号内的逻辑组合,再与变量1 判断,结果为 false。
请合理使用括号以确保逻辑准确。
Ps:| 与 ||、& 与 && 在本系统中功能完全一致,可互换使用。
point 类型变量用于存储坐标点(X,Y),支持多种赋值方式。
选择“int赋值”时,可分别输入 X 和 Y 坐标的表达式,计算结果将作为坐标点存入变量。
也可选择操作区域的四个角点作为赋值来源,系统会自动获取对应位置的坐标。
赋值后可使用 {变量.x} 和 {变量.y} 引用该点的横纵坐标。
电脑坐标以左上角为 (0,0) 起点,向右为 X 轴正方向,向下为 Y 轴正方向。
后台识别时获取的坐标是相对于绑定窗口的 (0,0);非后台识别时,坐标则是相对于主屏幕左上角 (0,0)。
string 类型变量用于存储文本内容,支持字段直接赋值或由多个变量与常量拼接生成。
使用“string字段”方式可直接输入一段固定文本;使用“字段拼接”方式,则可通过变量与常量组合生成动态文本。
拼接语法采用 + 号连接多个字段,所有变量都需使用 {} 包裹,不同类型变量有不同标识方式。
"内容"(用英文双引号括起来){变量名}{变量名?}(false => "false",true => "true"){变量名.x} 和 {变量名.y}{$变量名}{变量名[索引]}{变量名[索引]?}{变量名[索引].x}、{变量名[索引].y}{$变量名[索引]}{计时器名:}(单位为毫秒,例如 1.3 秒 => "1300")说明:拼接结果最终会合成一个完整字符串赋值给目标变量。
"第"+{序号}+"个任务由"+{$用户名}+"提交"第3个任务由张三提交"是否启用功能:"+{启用功能?}是否启用功能:true"第1项状态:"+{状态[0]?}+",第2项状态:"+{状态[1]?}第1项状态:true,第2项状态:false"第" + {序号} + "次点击位置为(" + {点击点.x} + "," + {点击点.y} + "),成功状态:" + {成功?} + ",操作者:" + {$操作者}第5次点击位置为(220,330),成功状态:true,操作者:李四
图片变量用于保存截图,通常用于模板识图等功能。
支持选择截图区域(操作区域、窗口、主屏幕等),可勾选后台识别模式,前提是已绑定窗口句柄。
启用“同名变量替换”时,若变量名已存在,将自动覆盖原图。
注意:图片赋值不会在宏结束时清除,变量将长期保留,需手动删除。
图像赋值过程不会弹出截图结果窗口,仅在程序内部保存。
该节点用于将屏幕指定区域截图并保存为本地 PNG 文件。
可自定义保存路径与图片名称。
支持选择截图区域来源,也可勾选“后台识别模式”无需担心识别区域被遮挡(需绑定句柄)。
启用“同名图片覆盖保存”后,若文件名重复,将直接覆盖原文件。
注意:图片名不要包含 .png,程序会自动添加。
该节点用于对列表变量中的元素进行增、删、改、查操作。
使用前需选择目标列表类型(int、bool、point、string)以及对应的变量名。
列表索引从 0 开始计数。
注意:若操作涉及变量赋值或读取,请确保目标变量类型匹配;索引支持表达式和变量引用。
该节点用于初始化一个新的空列表变量,支持类型包括 int、bool、point 和 string。
如果输入的变量名已存在对应类型的列表,则会直接清空原有内容并重新创建。
还可选择添加一个窗口句柄列表变量,系统会根据指定的窗口类名、标题和程序路径查找匹配窗口,并将其句柄写入 int 类型列表。
添加后可配合后台识别或窗口控制功能使用。
注意:窗口类名、窗口标题和路径均支持模糊匹配,若多个字段同时填写,将以交集方式匹配。
本节点用于在指定区域内识别文字,并判断是否包含指定字段,匹配成功后可执行赋值、点击、移动等操作。
注意事项:识别区域不宜过大,过大图片将被压缩,影响准确率,甚至识别失败。
可启用“略微旋转”、“180°反转”来提高验证码等轻微歪斜文本的识别能力。
此功能不建议高频循环使用,因其对 CPU 和内存占用较高。
"一二三四五六七",识别出 "一二三口五六七",匹配度约为 85%。├ PaddleOCR找字 │└ 识别成功后执行此节点 └ 后续其他操作
同上,建议用此方式进行识别,速度很快,准确度也可以,可以根据场景自行设置引擎参数
该节点用于将 OCR 识别到的文字结果赋值给 string 类型变量,支持三种识别方式(PaddleOCR、RapidOCR、WindowsOCR),结果统一赋值,便于后续处理。
注意:识别区域不要太大,图像过大将被压缩,容易造成识别不准确,甚至无法识别。
大多数设置可使用默认值,开启“允许偏转”可提升验证码类文本的识别能力。
若连续进行多次识别,建议在宏开始前手动提前启动 OCR 引擎,否则系统每次都会初始化引擎,性能消耗较高。注意:若你手动打开了引擎,识别完成后系统不会帮你自动关闭。
识别到的文字将赋值给 string 单值变量和/或列表变量,哪个输入框填写了变量名,就赋值哪个。
赋值:
模板找图功能用于在指定区域中查找某个图片变量,并根据匹配结果执行相关操作。
识别成功后将自动执行当前节点下的子节点内容。
├ 模板找图 │└ 识别成功后执行此节点 └ 继续执行
该节点用于将当前屏幕指定区域截图,与图片列表中的所有图片进行匹配,并返回相似度最高的那一项。
勾选“是否经过列表图片中心点”后,识别图像区域必须覆盖目标图片的中心点才算匹配;不勾选则只要任意部分命中即可。
适用于识别游戏中技能图标、状态图标等,从图像中提取出图标索引,用于驱动后续逻辑操作。
例如:识别当前释放的是哪个技能图标,返回其索引 3,执行技能 3 对应的指令。
注意事项:图片区域应清晰、大小一致,避免压缩变形导致识别失败。
该节点会在所选识别区域中查找与指定颜色最接近的像素点,返回其坐标用于点击、移动或赋值操作。
颜色通过 RGB 指定,支持容差范围匹配。
若勾选“后台识别模式”,则需绑定窗口句柄。
注意:若安装了识图功能模块,将极大加快找色效率;未安装也可使用,但速度较慢。
此功能适用于查找固定色块、特定 UI 元素位置等。
该节点用于检测操作区域内是否出现任何画面变化,例如窗口闪动、弹窗出现等。
系统会定期截图当前区域并与上一帧进行像素比对,只要有微小变化,即视为画面变化。
本节点用于在指定区域中执行 Yolo 目标检测,识别所有目标对象,获取其位置、标签、置信度等信息,并可进行后续处理。
├ Yolo目标检测 │├ foreach (标签ID列表) │└ 判断ID │ └ 执行相应操作 └ 后续操作
警告:请勿将本功能用于国内射击类或其他网络游戏!
造成封号、资产损失等后果由使用者自行承担,作者不承担任何责任。
请遵守各游戏的用户协议与行为规范。
本功能仅限用于学习交流、单机游戏或非违规用途。
该节点用于控制指定窗口的基础属性,包括位置、大小、标题修改、置顶状态、网络状态等。
该节点用于动态切换绑定的窗口句柄,可配合 int 变量或 int 列表动态控制识别区域。
true。false。该节点用于读取或写入 Excel 表格(支持 .xlsx 格式)的内容。
string 变量string[] 列表string[] 列表string 写入指定行列单元格string[] 列表按列方向写入string[] 列表按行方向写入.xlsx 后缀,系统会自动补全1 开始(符合 Excel 规范)本节点用于读取或写入 .txt 文本文件,操作简单、效率高。
.txt 文件的文本内容string[] 列表变量string[] 列表变量中的内容逐行写入文本功能简介:监听键盘、鼠标和手柄的输入事件,触发后可运行或终止指定的宏或指令块。可用于热键响应、手柄改键、自动化操作等场景。
本模块支持对屏幕区域或图片中的二维码进行识别,同时也支持将指定文本内容生成二维码图片并保存到本地。
二维码识别二维码生成用于让当前进程暂停指定时间,单位为毫秒(ms)。
100 表示暂停 100ms,Windows特性15ms以下的等待没啥区别。±50 则最终等待在 50~150ms 之间波动。可用于模拟人类操作节奏或避免固定间隔被检测。
本节点用于控制命名计时器的启动、暂停或重置操作。
{计时器名:} 可读取当前毫秒数。1500 表示 1.5 秒。本节点用于设置一天中的某个时间点触发操作,支持阻塞等待或在目标时间异步执行其他宏/指令块。
该节点用于结束当前正在执行的宏。
注意:不会影响其他正在运行的宏(例如多线程启动的其他宏或主宏)。
该节点用于同时终止所有正在运行的宏,包括主宏和所有通过多线程运行的子宏。
注意:此节点通常配置在“失败处理”或“紧急中断”逻辑中使用,请谨慎操作。
功能说明:指令块是由一组节点组成的独立逻辑单元,可以像函数一样被其他节点调用,用于复用逻辑、简化流程结构。
填写要执行的指令块名称。支持常量或变量。
跳出循环 等流程控制节点。结束宏(全部) 节点,会终止主线程及所有子线程。跳出循环 等流程控制节点,仅在当前线程中有效。功能说明:用于在当前宏中调用另一个完整的宏(通过其 MD5 标识),可选择同步或异步方式执行。
填写目标宏的 MD5 值(可在宏名称下方复制)。
功能说明:用于在当前宏中回放之前录制的宏,能够恢复录制过程中的鼠标、键盘和手柄操作。
填写目标录制宏的 MD5 值(可在录制宏名称复制)。
功能说明:该节点用于执行一条系统 CMD 命令,可实现创建文件、复制移动、网络设置、脚本执行等多种操作。
echo. > "%USERPROFILE%\Desktop\a.txt"copy "D:\file.txt" "E:\备份\"del /f /q "C:\temp\1.txt"start https://www.baidu.com/call "C:\脚本\run.bat"可在任意系统命令中使用环境变量(如 %USERPROFILE% 表示用户目录),或调用已存在的命令行工具。
更多命令可在网上搜索“Windows CMD 常用命令大全”。
功能说明:该节点用于运行指定程序,或关闭指定程序进程。
C:\Users\123456\Desktop\键鼠助手.lnknotepad功能说明:该节点用于立即执行关机或休眠操作。
注意:请在确保数据保存完毕的情况下使用此功能。
功能说明:备注节点可用于插入一段文字说明,主要用于辅助阅读和整理结构。
功能说明:该节点用于调试过程中查看变量或表达式的实际值。
功能说明:该节点用于加载并自动弹奏 .midi 文件中的音符序列,可用于模拟键盘输入实现自动弹琴。