拆分并复用过长宏¶
本教程把一段过长宏拆成两个蓝图:原蓝图保留前半段,新蓝图接收后半段。片段先用进程内宏剪贴板迁移,再用开始与结束蓝图节点读写本次任务的共享变量;完整宏还可以导出为 .gmacro 复用。
前置条件¶
- 原蓝图中已有一条可以播放或 Debug 的宏时间线。
- 文件管理中已创建目标蓝图,或当前自动化中已有可编辑的第二张蓝图。
- 已保存原蓝图。重要宏建议额外导出一份
.gmacro作为回退副本。 - 本次操作期间不要关闭 GhostClickAI。宏片段剪贴板只在当前软件进程中保留。
先决定拆分边界¶
- 在原宏中播放到计划拆分的位置。
- 选择一段业务完整的片段,例如“登录完成后领取奖励”,不要从一次按下与抬起的中间强行切开。
- 检查所选片段是否引用组件、变量、图像、视频或 ONNX。
- 记下新蓝图开始时需要的输入,以及原蓝图结束时需要交出的结果。
如果后半段依赖前半段运行时产生的数据,应由结束蓝图节点写出具名共享变量,再由后续蓝图的开始节点按名称与类型读取。
步骤一:复制片段及依赖¶
- 在原宏时间线中框选要迁移的全部片段。
- 按
Ctrl+C。首次拆分建议先复制,不要立即剪切。 - 退出当前宏和蓝图,打开目标蓝图中的宏节点。
- 把时间指示器放到希望粘贴的起点,通常为
0秒。 - 按
Ctrl+V,检查片段的相对时间、轨道和嵌套关系。
宏片段剪贴板与节点剪贴板、文件管理剪贴板相互独立。它允许在当前进程中跨宏、跨蓝图粘贴;复制新的宏片段会替换上一次宏片段剪贴板内容。
粘贴会迁移所选内容实际需要的依赖闭包,包括被引用的资源、变量定义、组件和绑定关系。它不会把根蓝图中所有无关资源一起复制。发生真实 ID 冲突时,目标蓝图会建立新身份并重写本次粘贴内容的引用。
步骤二:检查粘贴后的闭包¶
在目标宏中逐项确认:
- 图像、视频和 ONNX 片段或识别目标仍能显示资源。
- 绑定组件仍在预览区,片段属性显示正确组件和锚点。
- 变量引用没有变成空值,变量类型与原蓝图一致。
- PC、ADB 和预览片段位于兼容轨道。
- 片段起点没有与目标宏原有内容形成意外覆盖。
打开内嵌资源管理器,可查看新蓝图中资源的实际使用位置。复制闭包不是共享两个蓝图的同一资源 ID;两张蓝图之后可以独立修改。
步骤三:建立蓝图之间的数据接口¶
假设前半段要把“是否登录成功”和“账号名称”交给后半段:
- 在原蓝图的“结束蓝图”节点连接布尔和字符串结果;接入数据后会自动出现尾部空端口。
- 双击这两个输入口的名称,分别命名为“是否登录成功”和“账号名称”。
- 每个结束蓝图节点独立维护输入;为本次可能到达的结束路线分别连接需要写出的结果。
- 在目标蓝图的开始节点声明“是否登录成功/布尔”和“账号名称/字符串”。
- 将对应值输出接入后半段节点,用“是否找到”判断共享数据是否存在;找不到时使用该声明的默认值。
- 在同一自动化中把原蓝图排在目标蓝图之前,再运行两步流程。
开始节点只有一个,结束蓝图节点可以有多个。实际生效的结束节点按本节点输入口名称与实际类型写出共享变量;后续蓝图按“名称+类型”读取,不依赖相邻槽位编号。开始节点的默认值只在找不到共享数据时使用。
步骤四:验证后再移除原片段¶
- 保存目标蓝图并局部 Debug 新宏。
- 运行包含两张蓝图的测试自动化,确认接口值和执行顺序正确。
- 回到原宏,重新选择已经迁移的后半段。
- 删除原片段,或在确认目标粘贴成功后使用剪切方式重新完成迁移。
- 保存两张蓝图,再运行一次完整自动化。
先复制、后验证、最后删除,可以避免跨蓝图剪切失败时同时失去来源和目标。
用 .gmacro 复用完整宏¶
需要迁移整个宏而不是一部分时,使用宏工具条的“导出”:
- 按需要选择导出 PC、ADB、图像和视频片段。
- 导出
.gmacro。包会保留宏结构、组件、绑定、变量及实际仍被引用的资源闭包。 - 在目标宏中使用“导入”会整体替换当前宏;在根蓝图画布拖入
.gmacro则创建一个新宏节点。 - 导入后保存目标蓝图并重新 Debug。
.gmacro 适合备份、交付和完整复用;进程内剪贴板更适合拆出一部分片段。.gmacro 本身不是内嵌资源类型,导入后资源会接入目标根蓝图的 Image、Video 和 ONNX 资源池。
验证结果¶
- 原蓝图只执行保留的前半段,并由实际生效的结束蓝图节点写出预期共享变量。
- 目标蓝图的开始节点按相同名称与类型找到共享值,并继续执行迁移内容。
- 目标宏中的资源、变量、组件和绑定均无丢失提示。
- 完整自动化只执行一次每个业务步骤,没有因原片段未删除而重复操作。
- 重新打开蓝图后,两边内容和资源引用仍然存在。
失败处理¶
- 切换蓝图后无法粘贴:确认复制的是宏时间线片段,不是节点或文件;软件重启后需要重新复制。
- 粘贴到错误时间:撤销后把时间指示器放到目标起点,再次粘贴。
- 片段存在但组件丢失:检查复制时是否完整选择依赖该组件的内容,并查看片段属性中的绑定状态;必要时从
.gmacro回退。 - 目标蓝图读不到共享值:检查自动化顺序、实际生效的结束蓝图节点输入、名称与类型,以及开始节点的声明和“是否找到”输出。
- 导入 .gmacro 后原宏消失:宏内“导入”设计为整体替换。需要保留原宏时,应在根画布拖入文件创建新宏,或先导出备份。
- 包异常变大:检查是否导出了不需要的视觉片段,以及保留内容是否仍真实引用大型 Image、Video 或 ONNX。