1. 快速入门
启动程序
双击 KeyMouseMate.exe 即可启动。
首次运行时,若 Windows 弹出安全警告,请点击「仍要运行」或「更多信息 → 仍要运行」。
KeyMouseMate.exe 固定到任务栏或创建桌面快捷方式,方便以后快速启动。
第一个方案(5 步完成)
- 新建方案:菜单「方案 → 新建方案」,输入名称,保存。
- 新建节点:右侧「节点库」→「新建」,输入名称。
- 添加动作:弹出节点编辑器 →「添加动作」,选择「左键单击」,设置坐标,保存。
- 添加步骤:在主界面「方案步骤」面板 →「添加步骤」,选择刚创建的节点。
- 运行:点击「▶ 运行」按钮或按 Ctrl+Shift+S。
2. 三层模型
程序以三层结构组织自动化任务:
| 层级 | 说明 |
|---|---|
| 方案 Plan | 一次完整任务 = 步骤列表 + 监控规则 + 运行参数 |
| 节点 Node | 一组动作的具名单元,可被多个方案共享引用 |
| 动作 Action | 最小执行单元,共 33 种类型 |
公共模板与私有实例
动作与节点都有两种形态,界面上用徽标区分:
| 徽标 | 形态 | 存放位置 | 改动影响 |
|---|---|---|---|
| 🔗 | 公共实例 | 关联动作库 / 节点库中的一份模板 | 改模板 → 所有引用处自动同步 |
| 🔒 | 私有实例 | 内嵌在所属方案 / 节点文件里 | 只影响这一处,不入库、不进分类树 |
快照(自包含):公共实例在关联模板的同时,会把自己所用模板的全部字段副本一并存入方案文件。因此方案文件本身即完整可运行——单个 .json 直接分享给别人即可,接收方无需预先拥有相同的动作库 / 节点库。
- 保存 / 改名模板 → 所有引用它的节点与方案快照自动刷新。
- 删除模板 → 引用处自动降级为私有副本,方案仍可运行。
- 编辑公共实例 → 每次都弹二次确认:
修改模板=全局生效(所有引用处一起变)、仅改这一份=转为私有(只影响当前方案)、取消=不改(默认聚焦取消,防误触)。 - 新建默认私有:新增的动作 / 节点默认是私有实例;需要复用时点「转为公共」,填名称与分类后写入库,重名须改名。
- 导入分享的方案:命中本地同 ID 的模板则保持公共并刷新快照,未命中的自动降级为私有副本,导入后即可直接运行。
3. 界面布局
- 状态栏:左侧显示版权,右侧红色坐标实时跟随鼠标。
- 日志区:可上下拖动分割条调整高度。
- 折叠:点击「◁ 显示方案」/「▷ 显示节点」可折叠对应侧栏,节省空间。
3.5 典型场景示例
示例一:自动登录网页
场景:打开浏览器,自动填写用户名密码并登录。
方案「自动登录」:
步骤1「打开网站」(1轮)
节点「登录-打开网页」
├─ action: open_website → https://example.com/login
└─ action: wait → 3s(等页面加载)
步骤2「输入凭证并登录」(1轮)
节点「登录-填表单」
├─ action: ocr_check → 关键词"用户名", 区域追踪
├─ action: tab_click → 点击用户名输入框
├─ action: input_text → 用户名文本(可用 {变量.用户名})
├─ action: tab_click → 点击密码输入框
├─ action: input_text → 从密码库取密文
└─ action: left_click → 坐标点击[登录]按钮
示例二:批量表单提交 + 弹窗处理
场景:批量处理 100 条数据,每条提交后可能弹出确认或错误框。
方案「批量提交」:
步骤1「循环提交」(100轮)
节点「提交操作」
├─ action: wait → 0.5s
├─ action: ocr_check → 关键词"提交按钮", 点击
├─ action: wait → 1s
└─ action: goto → 回到本节点第1步(loop_count控制总轮数)
监控规则1「错误弹窗处理」:
关键词:错误,报错,异常,数据不规范
处理器:节点「处理-报错弹窗」(点击[确定]后返回)
监控规则2「确认弹窗」:
关键词:确认,确定,是否继续
处理器:节点「处理-确认弹窗」(点击[确定]后返回)
示例三:定时巡检报表
场景:工作日每天上午9点自动运行巡检脚本。
方案「每日巡检」:
步骤1「启动巡检」(1轮)
节点「启动程序」
└─ action: open_file → D:\scripts\inspection.py
步骤2「等待结果」(1轮)
节点「等待完成」
└─ action: wait_text → 区域识别"完成"或"error",超时300s
监控规则「意外弹窗」:
关键词:异常,崩溃,退出
处理器:节点「处理-异常」(发送通知)
定时调度:
Cron:0 0 9 * * 1-5 *(工作日 9:00:00)
关联方案:每日巡检
4. 动作类型全解
4.1 鼠标类
| 动作 | 参数 | 说明 |
|---|---|---|
| 左键单击 | 区域(左上X / 上Y / 右下X / 下Y) | 点击单个点(区域宽高为0) |
| 左键双击 | 同左 | 双击 |
| 右键单击 | 同左 | 右键 |
| 移动鼠标 | 起点 + 终点(可选) | 无终点:直接移动;有终点:先到达起点再平滑移到终点 |
| 拖动选择 | 起点 + 终点 | 按住左键从起点拖到终点 |
| 滚轮滚动 | X,Y + 方向(up/down) + 格数 | 先移动到坐标,再滚动鼠标滚轮 N 格(网页/列表翻页) |
4.2 输入类
| 动作 | 参数 | 说明 |
|---|---|---|
| 输入文本 | X,Y + 文本 + 先清空 + 密码库 | 点击坐标获得焦点后粘贴文本;支持 {变量} 模板;选密码库自动取明文 |
| 单击后输入 | X,Y + 文本 + 先清空 + 密码库 | 先左键单击坐标获得焦点,再粘贴文本;支持 {变量} 模板与密码库 |
| 单击后输入完Tab | 同上 | 同「单击后输入」,输入完成后自动再按一次 Tab |
| 双击后输入 | 同上 | 双击定位(如选中行/展开列表项)后粘贴输入文本 |
| 双击后输入完Tab | 同上 | 同「双击后输入」,输入完成后自动再按一次 Tab |
| Tab后点击 | X,Y(或追踪) | 模拟 Alt+Tab 切换窗口后点击目标坐标 |
| Tab后输入 | X,Y + 文本 | 模拟 Alt+Tab 切换窗口后直接输入文本(无需点击) |
| OCR偏移点击 | 区域 + 偏移量 + 关键词 | 识别关键词位置,按偏移点击(不输入文本) |
| OCR偏移点击输入 | 区域 + 偏移量 + 关键词 + 文本/密码 | 识别关键词位置,按偏移点击,然后输入文本 |
| OCR偏移双击 | 区域 + 偏移量 + 关键词 | 识别关键词位置,按偏移双击(如选中一行文本) |
| 找图点击 | 模板图片 + 搜索区域(可选)+ 偏移量 + 跳转 | 用模板截图在屏幕上匹配(cv2 模板匹配,阈值 0.8),命中点击中心+偏移;适合无文字的图标/按钮 |
| 复制选区到变量 | X,Y(可选,先点击聚焦)+ 存入变量 | Ctrl+C 复制当前选区内容,读剪贴板存入 {变量};与设置变量/模板配合做数据抓取 |
| 按键 | 键名 | 模拟按键,如 enter、ctrl+c、alt+f4、f5 等 |
4.3 等待类
| 动作 | 参数 | 说明 |
|---|---|---|
| 等待 | 时长(秒) | 固定等待,可被暂停/停止打断 |
| 等待文本 | 区域 + 关键词 + 超时 + 轮询间隔 | 轮询 OCR 直到出现关键词或超时;用于"等页面加载完" |
| 等待窗口 | 窗口标题关键词 + 超时 + 轮询间隔 + 跳转 | 轮询等待标题包含关键词的窗口出现,出现即激活;超时走未命中跳转 |
| 等待图片 | 模板图片 + 搜索区域(可选)+ 超时 + 轮询间隔 + 跳转 | 轮询找图直到出现或超时;可等加载圈消失等场景 |
| 随机延迟 | 基准时长(秒) | 在基准时长的 50%~150% 之间随机等待,比固定等待更自然 |
4.4 OCR 类
| 动作 | 参数 | 说明 |
|---|---|---|
| OCR识别 | 区域 + 关键词 + 匹配模式 + 存变量 + 跳转 | 单次识别;命中/未命中可分别跳转到节点内第 N 个动作 |
匹配模式:
任意(OR):命中任一关键词即成功全部(AND):所有关键词都出现才成功
4.5 流程控制类
| 动作 | 参数 | 说明 |
|---|---|---|
| 跳转 | 目标序号 N | 跳到节点内第 N 个动作(向后跳=循环) |
| 设置变量 | 名称 + 值 | 创建 {变量.名称};值支持 {变量} 模板、数字、true/false |
4.6 系统类
| 动作 | 参数 | 说明 |
|---|---|---|
| 打开文件 | 路径 | 打开文件或启动程序 |
| 截图 | 区域 | 保存到桌面 screenshot_时间戳.png |
| 打开网站 | 网址 | 打开指定网址(浏览器) |
| 窗口最大化 | 无 | 激活前台窗口并最大化 |
| 激活窗口 | 窗口标题关键词(逗号分隔)+ 跳转 | 按标题关键词找到窗口并带到前台;未找到走未命中跳转。自动化前先确保目标窗口在前台 |
| 写文件 | 目标文件 + 写入内容({变量} 模板) | 追加一行到文件末尾,自动加时间戳前缀;配合变量可记录每轮处理轨迹 |
4.7 新增动作详解与典型场景
下面对近期新增的 13 种动作(动作总数已达 33 种)展开说明主要用法与应用场景,参数速查见上文 4.1~4.6 各表。
| 动作 | 怎么用 | 典型场景 |
|---|---|---|
| ▍点击 + 输入组合 | ||
| 单击后输入 | 填坐标定位 + 输入内容:先单击该坐标获得焦点,再粘贴文本;执行次数 = 重复点选输入几遍 | 表单逐项填写(点用户名框输入账号、点密码框输入密码),一个动作顶替「单击 + 输入文本」两步 |
| 单击后输入完Tab | 同「单击后输入」,输入完成后自动再按一次 Tab 跳到下一控件 | 连续表单一条链填完——"输完账号按 Tab 到密码框",省去为每个输入框单独算坐标 |
| 双击后输入 | 双击坐标后粘贴文本 | 需双击才进入编辑状态的控件:Excel/表格单元格、文件重命名框、双击展开树节点;双击也可用于选中一段词后覆盖输入 |
| 双击后输入完Tab | 同「双击后输入」,输完自动按 Tab | 表格类软件中"双击单元格 → 输入 → Tab 到下一格"的连续录入 |
| ▍鼠标增强与数据采集 | ||
| 滚轮滚动 | 坐标定位 + 方向(up/down) + 滚动格数:先把鼠标移到该位置,再滚动 N 格 | 长页面翻页浏览、下拉列表选第 N 项、滚动触发列表懒加载;比按键 PageDown 粒度更细 |
| 复制选区到变量 | 可选填坐标(填了先点一下聚焦),然后 Ctrl+C 复制当前选区,读剪贴板存入指定变量;之后其它动作用 {变量.名} 引用 | 从网页/软件抓当前选中内容:复制订单号、报错信息、价格,供打开网址、写文件、条件判断使用。注意 Ctrl+C 复制的是"当前已选中"的内容,目标处需先有选区 |
| ▍窗口管理 | ||
| 激活窗口 | 填窗口标题关键词(逗号分隔多个,任一包含即命中),把匹配窗口带到前台;未命中可跳转 | 多软件协作流程的第一步(先激活"记事本"再写入);运行前确认目标程序已打开,没开走失败分支 |
| 等待窗口 | 标题关键词 + 超时秒数轮询等待,窗口出现即激活,超时走未命中跳转 | 等"导出完成"弹窗、等软件启动后的主窗口、等登录成功页;"出现才继续、超时走失败"比盲等固定秒数可靠 |
| ▍图像识别 | ||
| 找图点击 | 截一小块目标图作模板,在区域内模板匹配(阈值 0.8),命中点击中心+偏移 | 控件位置会漂移的界面(按钮今天在 (800,300) 明天在 (795,310),坐标点击会失效);也适合无文字的图标/按钮,按"长什么样"定位而非坐标 |
| 等待图片 | 模板图片 + 超时轮询,图像出现即继续(只等不点),超时走跳转 | 等加载圈消失、等"下载完成"图标出现、等进度条走完;适用于弹窗无标题或内容型提示的场景 |
| ▍OCR 增强与流程辅助 | ||
| OCR偏移双击 | 识别关键词后,在命中位置加偏移做双击 | 双击打开识别到的条目:文件列表双击文件名、聊天记录双击联系人、表格双击某行进入编辑;与 OCR偏移点击/OCR偏移点击输入 配成三件套 |
| 随机延迟 | 填基准时长(秒),实际在基准值的 50%~150% 间随机等待 | 批量提交时每步间随机停顿,让操作节奏更拟人;也适用于等响应时间不确定的页面 |
| 写文件 | 目标文件路径 + 写入内容(支持 {变量} 模板),追加一行并自动加时间戳前缀 | 运行结果留痕:把复制到的订单号、OCR 识别结果逐轮追加到 txt/csv;配合「复制选区到变量」组成"抓取 → 落盘"流水线 |
组合示例:自动取数流水线——一条流程串起多个新动作:
| 步骤 | 动作 | 配置要点 | 作用 |
|---|---|---|---|
| 1 | 激活窗口 | 关键词:业务系统 | 确保目标程序在前台 |
| 2 | 等待图片 | 加载圈消失模板,超时 30 秒 | 等页面加载完 |
| 3 | 找图点击 | 导出按钮截图,区域为 0 时全屏找 | 位置会漂的按钮用图找 |
| 4 | 等待窗口 | 关键词:导出完成,超时 60 秒 | 等结果弹窗出现 |
| 5 | 复制选区到变量 | 不填坐标,存入变量:单号 | 抓取数据到变量 |
| 6 | 写文件 | 采集结果.txt,内容:{变量.单号} | 落盘留痕 |
| 7 | 随机延迟 | 基准 2 秒 | 下一轮前拟人停顿 |
5. 执行次数
所有动作类型均支持执行次数(loop_count),默认 1 次。
设置位置
- 节点编辑器 → 编辑动作 → "执行次数" 字段
- 动作管理器(全局库)→ 编辑 → "执行次数" 字段
- 动作列表表格中均有"执行次数"列,支持右键「列设置」隐藏或调整宽度
行为
- 动作执行 N 次后,继续下一个动作。
- 每次执行之间自动等待"后置等待"时间。
- 例:动作 A 执行次数=2,动作 B 执行次数=1 → 顺序为 A→A→B。
6. 条件分支与工作流
6.1 步骤级条件
每个步骤可设置执行条件,决定该步骤是否运行:
| 条件类型 | 说明 |
|---|---|
| 无条件 | 始终执行(默认) |
| 变量表达式 | 表达式为 true 时执行 |
| OCR 区域识别 | 指定区域 OCR,命中关键词时执行 |
| OCR 数值比较 | 识别区域第一个数字,与阈值比较 |
条件不满足时的处理:
- 跳过:执行下一个步骤(默认)
- 跳转到步骤 #N:跳到指定步骤
- 终止方案:方案停止,状态显示"已完成"
6.2 动作出错处理
| 策略 | 说明 |
|---|---|
| 继续 | 记录日志,执行下一个动作(默认) |
| 重试 N 次 | 失败后重试,仍失败则按策略处理 |
| 跳转到步骤 #N | 跳到指定步骤 |
| 中止方案 | 停止整个方案 |
6.3 动作级跳转(节点内)
OCR识别 和 跳转 动作支持节点内跳转:
- 命中→跳转:OCR 命中后跳到节点内第 N 个动作
- 未命中→跳转:OCR 未命中后跳到第 N 个动作
- 可组合形成节点内循环(如:跳转回第 1 个动作)
7. 变量与表达式
7.1 内置变量
| 变量 | 含义 |
|---|---|
{轮次} | 当前节点循环第几轮(1 基) |
{步序} | 当前步骤序号(1 基) |
{节点名} | 当前步骤引用的节点名 |
{方案名} | 当前方案名称 |
{ocr.last} | 最近一次 OCR 全文 |
{ocr.hit} | 最近一次 OCR 是否命中(true/false) |
{ocr.matched} | 最近命中的关键词文本 |
{结果.上一步} | 上一个动作是否成功(true/false) |
{变量.xxx} | 用户通过「设置变量」动作创建的变量 |
7.2 表达式语法
表达式用于步骤执行条件,不使用 eval,安全受限:
运算符:== != > < >= <= contains matches startswith endswith and or not
matches 支持正则:右侧用 re: 前缀
{ocr.last} matches 're:错误代码:\s*\d+'
7.3 示例
{变量.已登录} == true
{ocr.last} contains '成功'
{轮次} > 3 and {变量.停止} != true
{ocr.last} matches 're:订单号:\s*\w+'
7.4 模板替换
在「输入文本」「按键」「打开文件」「设置变量」的值中可写 {变量名},执行时自动替换;未知变量原样保留,不报错。
8. OCR 识别
8.1 双引擎
| 引擎 | 说明 |
|---|---|
| RapidOCR(默认) | PP-OCR 模型,中文准确率高,体积小巧,开箱即用 |
| PaddleOCR(可选) | 识别上限略高,适合对复杂版面要求高的场景 |
auto 模式:优先 RapidOCR,失败时自动回退到 PaddleOCR。
8.2 OCR 设置
菜单「工具 → OCR 设置」:
- 引擎切换:RapidOCR / PaddleOCR / auto
- 置信度阈值:低于此值的识别行被过滤(0.0~1.0,默认 0.5)
- 调试日志:运行时输出每次 OCR 识别结果预览,方便排查识别问题
- 区域测试:选择区域 → 点击"测试识别",查看识别文本和置信度
8.3 小区域放大
自动检测:识别区域过小时(< 200px 宽或高),自动放大 1.5~2 倍再识别,提高小文字识别率。
9. 监控规则(弹窗处理)
9.1 工作原理
监控规则在后台线程运行,与主流程完全独立:
9.2 创建监控规则
菜单「工具 → 监控规则」→ 新建:
| 参数 | 说明 |
|---|---|
| 区域 | OCR 监控的屏幕区域(可用追踪取区域) |
| 关键词 | 触发关键词,逗号分隔,支持 re: 正则前缀 |
| 检测间隔 | 每秒检测几次(默认 1.0 秒) |
| 冷却时间 | 触发后多少秒内不重复触发,防止反复处理 |
| 处理类型 | 执行节点(内联处理)或 终止方案 |
| 处理节点 | 命中后执行的节点名(处理类型=执行节点时) |
9.3 典型场景:批量提交 + 弹窗处理
9.4 调试技巧
- 打开「OCR 调试日志」,日志中出现
🔍 [规则名] OCR: ...查看识别内容 - 在节点中添加
ocr_check动作,将识别全文存入变量并截图到桌面,确认区域是否正确 - 若触发过于频繁,增大
冷却时间
10. 定时调度(Cron)
10.1 创建调度
菜单「工具 → 定时调度」→ 新建:
调度包含:Cron 表达式(7 字段:秒 分 时 日 月 周 年)、启动延迟、关联方案、调度名称。
10.2 Cron 表达式速查
| 字段 | 示例 | 含义 |
|---|---|---|
| 秒 | 0 | 每分钟的第 0 秒 |
| 分 | */5 | 每 5 分钟 |
| 时 | 9-18 | 9点到18点 |
| 日 | L | 每月最后一天 |
| 月 | * | 每月 |
| 周 | 1-5 | 周一到周五 |
| 年 | * | 每年 |
10.3 高级语法
| 语法 | 示例 | 含义 |
|---|---|---|
* | */15 * * * * | 每 15 秒 |
, | 0,30 * * * * | 每小时的第 0 和 30 秒 |
- | 9-18 * * * 1-5 | 9点到18点,周一到周五 |
L | 0 0 L * * | 每月最后一天 0 时 0 分 |
W | 0 0 15W * * | 每月最接近 15 号的工作日 |
NwD | 0 0 15NwD * * | 每月第 15 个工作日 |
#N | 0 0 * * 6#2 | 每月第二个周六 |
10.4 运行状态
- 调度器在后台精确等待下次触发时刻(非轮询),到达时自动运行关联方案。
- 托盘图标和日志显示调度状态。
- 主窗口关闭后调度继续运行(托盘模式下)。
11. 热键
11.1 默认热键
| 功能 | 默认 |
|---|---|
| 开始运行 / 从暂停继续 | Ctrl+Shift+S |
| 暂停 / 恢复 | Ctrl+Shift+P |
| 停止 | Ctrl+Shift+Q |
| 坐标追踪(起点/区域) | Ctrl+Shift+C |
| 坐标追踪(终点/拖动结束点) | Ctrl+Shift+X |
11.2 修改热键
菜单「工具 → 热键设置」→ 选择功能 → 点击"录制" → 按下新的组合键 → 保存。
11.3 追踪热键详解
Ctrl+Shift+C 是三阶段追踪:
- 第一次按下:开始追踪左上角(按钮文字显示"追踪左上角")
- 第二次按下:切换到追踪右下角(按钮文字显示"追踪右下角")
- 第三次按下:锁定当前坐标(按钮文字显示"已锁定")
适用于:动作编辑坐标、步骤 OCR 条件区域、监控规则区域、OCR 设置测试区域。
Ctrl+Shift+X 仅用于拖动动作的终点追踪。
12. 密码管理
菜单「工具 → 密码管理」:
- 添加:输入名称和明文密码 → 加密存储到
userdata/passwords.db - 编辑/删除:右键管理已有条目
- 在动作中使用:输入文本动作 → 点击"密码库…" → 选择条目
执行时程序自动:①从数据库取出明文 ②粘贴到目标位置 ③清空剪贴板(防止泄露)④日志中显示 *****(打码,不显示实际密码)。
13. 坐标追踪
13.1 追踪区域(Ctrl+Shift+C)
适用于所有需要坐标的位置:动作的左上角/右下角、步骤 OCR 条件区域、监控规则区域、OCR 设置测试区域。
- 在坐标输入框中点击"追踪区域"按钮(或按 Ctrl+Shift+C)
- 移动鼠标到目标左上角,再次按 Ctrl+Shift+C 锁定左上角
- 移动鼠标到目标右下角,再次按 Ctrl+Shift+C 锁定右下角
- 按钮文字实时显示当前阶段(追踪左上角 / 追踪右下角 / 已锁定)
13.2 追踪终点(Ctrl+Shift+X)
用于拖动动作的终点:移动鼠标到目标位置,按 Ctrl+Shift+X 锁定,起点不受影响。
13.3 独立追踪
两个按钮独立追踪,可同时追踪起点和终点而不互相干扰。
14. 数据管理:新建 / 复制 / 重命名 / 删除
14.1 新建
| 对象 | 说明 |
|---|---|
| 动作 | 自动生成 action_id,保存到 userdata/actions/ 目录 |
| 节点 | 自动生成 node_id,保存到 userdata/nodes/ 目录 |
| 方案 | 自动生成 plan_id,保存到 userdata/plans/ 目录 |
14.2 复制规则
| 复制对象 | 新 ID | 原 ID | 复制行为 |
|---|---|---|---|
| 动作 | 新 action_id | 原 action_id | 完整复制所有字段(名称需修改) |
| 节点 | 新 node_id | 原 node_id | 内联动作保留原 action_id;共享动作引用保留原 ID |
| 方案 | 新 plan_id | 原 plan_id | 复制所有步骤和监控规则 |
14.3 重命名
- 节点重命名:自动同步所有引用该节点的方案中的步骤(按 ID 与名称双匹配)。
- 动作重命名:旧文件自动删除,新名称文件写入。
14.4 删除
- 被引用的节点/动作/方案删除时会列出受影响对象并要求确认。
- 方案删除后不影响节点和动作文件。
14.5 列设置
所有表格(动作列表、节点列表、方案列表)均支持右键 →「列设置… 」:勾选显示/隐藏列,拖拽调整列宽,设置自动保存。
14.6 右键菜单操作
除列设置外,各表格还根据上下文提供操作菜单:
| 位置 | 菜单项 | 说明 |
|---|---|---|
| 动作管理 | 新建 / 编辑 / 复制 / 删除 / 上移 / 下移 / 导入 / 导出 / 运行本动作 / 列设置 | 管理公共动作库 |
| 节点管理 | 新建 / 编辑 / 复制 / 重命名 / 删除 / 上移 / 下移 / 导入 / 导出 / 列设置 | 管理公共节点库 |
| 方案管理 | 新建 / 编辑 / 复制 / 删除 / 上移 / 下移 / 设默认 / 导入 / 导出 / 列设置 | 管理方案列表 |
| 步骤面板 | 添加步骤 / 编辑步骤 / 删除步骤 / 上移 / 下移 / 编辑节点 / 转为公共/私有 / 列设置 | 管理方案步骤顺序 |
| 节点编辑器 | 新建私有动作 / 从公共库添加 / 编辑动作 / 复制动作 / 转为公共/私有 / 删除动作 / 上移 / 下移 / 列设置 | 编辑节点内的动作列表 |
| 节点库面板 | 新建 / 编辑 / 复制 / 重命名 / 删除 / 上移 / 下移 / 导入 / 导出 / 转为私有节点 | 节点库快捷操作 |
| 方案面板 | 新建 / 编辑 / 复制 / 删除 / 设默认 / 上移 / 下移 / 导入 / 导出 | 方案列表快捷操作 |
部分菜单项可能需要先选中对应行才可用(显示为灰色)。
15. 效果叠加(执行回显)
菜单「设置 → 效果设置」:运行方案时在主窗口上方叠加半透明视觉效果,由执行引擎触发,用于调试和观察执行状态:
| 效果 | 说明 |
|---|---|
| 点击波纹 / 光晕 | 方案点击时显示扩散波纹或光晕动画 |
| OCR 十字线 | OCR 识别区域绘制十字准星 |
| 键盘文字 | 方案输入的文本浮窗显示 |
可独立开关每种效果,调整颜色(Hex 颜色值)和透明度。
16. 实时可视化(键鼠可视化)
由独立工具 KeyMouseViz 有机融合而来的内置模块(rpa/viz.py),随主程序启动常驻、随主程序退出关闭,无需管理员权限,支持高 DPI / 多显示器。
16.1 功能概览
| 功能 | 说明 |
|---|---|
| 鼠标高亮 | 突出显示鼠标位置,演示/录屏时观众看得清 |
| 点击效果 | 真实点击时显示涟漪/光晕动画(左右键、双击可分别设置) |
| 按键显示 | 实时显示你按下的键(支持组合键、只显示组合键模式) |
| 鼠标坐标 | 屏幕角落实时显示鼠标物理坐标(字号/位置/亚像素可调) |
| 聚光灯 | 鼠标周围高亮、四周压暗,聚焦观众注意力 |
| 放大镜 | 鼠标周围实时放大镜(圆形/方形、倍率、大小可调) |
| 浮动工具栏 | 屏幕悬浮工具条,一键开关上述各项 |
默认全部关闭,随程序启动常驻待命,按需开启。
16.2 开启方式(四处入口,状态实时同步)
- 菜单:设置 → ☑「启用浮动工具栏」/「设置可视化…」
- 托盘:托盘图标右键 →「可视化」子菜单(6 项开关 + 浮动工具栏)
- 浮动工具栏:点击图标开关对应功能
- 热键:见 11.2 可视化热键
任意一处切换,其余三处勾选状态即时同步。
config/config.json 的 viz 段,重启后恢复原状态。
16.3 浮动工具栏
屏幕悬浮工具条(默认屏幕右下角,可拖动),提供 6 个功能按钮:定位/高亮、点击效果、键盘、坐标、聚光灯、放大镜。图标为内置线条绘制;若 config/floatbar/*.svg 存在则优先使用 SVG。图标颜色可在可视化设置中分别调整。
16.4 设置可视化对话框
菜单「设置 → 设置可视化…」或热键 Ctrl+Shift+F1 打开:
| 分组 | 主要设置 |
|---|---|
| 通用 | 显示器选择(主屏/全部/自定义)、刷新间隔、双击间隔 |
| 鼠标 | 高亮宽度、点击效果类型(涟漪/光晕/无)、颜色、线宽、环数 |
| 键盘 | 开关、只显示组合键、位置、字号、背景色、显示时长 |
| 聚光灯 | 开关、半径、暗度 |
| 放大镜 | 开关、大小、倍率、形状(圆形/方形) |
| 鼠标坐标 | 开关、字号、位置、自定义坐标、亚像素显示 |
| 浮动工具栏 | 开关、图标颜色 |
| 关于 | 版本信息 |
16.5 与「效果叠加」的区别
| 效果叠加(15 章) | 实时可视化(本章) | |
|---|---|---|
| 触发方式 | 方案执行时由引擎触发 | 实时监听真实的键鼠操作 |
| 用途 | 调试方案、观察执行位置 | 教学/演示/录屏辅助 |
| 状态来源 | 方案执行事件 | pynput 全局监听 |
两者相互独立、可同时使用。
17. 托盘与关闭行为
17.1 托盘图标
启动后系统托盘出现程序图标,右键菜单:
- 显示主窗口:恢复主窗口
- 暂停 / 恢复:与主界面按钮等效
- 停止执行:停止当前方案
- 可视化:子菜单(鼠标高亮 / 点击效果 / 按键显示 / 鼠标坐标 / 聚光灯 / 放大镜 / 浮动工具栏,勾选状态与菜单、浮栏实时同步)
- 关闭行为设置…:修改关闭窗口时的行为
- 彻底退出:直接退出程序(可视化模块一并停止)
17.2 关闭行为
点击窗口 X 按钮时,可配置行为(首次询问,可勾选"记住选择"):
| 行为 | 说明 |
|---|---|
| 最小化到托盘 | 窗口隐藏,方案/热键继续有效(默认) |
| 最小化到任务栏 | 窗口最小化,仍在任务栏 |
| 彻底退出 | 若方案运行中先确认,然后退出 |
18. 迁移旧方案
菜单「方案 → 迁移旧方案」:
扫描旧版 schemes/ 目录,自动转换:
- 主任务 → 节点「主流程-方案名
- 弹窗规则 → 监控规则 + 处理节点「弹窗处理-方案名-规则名
- 子动作、点击坐标、密码引用全部保留
- 旧版"总轮次" → 步骤循环次数
幂等:已存在的同名内容自动跳过,可重复执行。
19. 常见问题
19.1 首次运行安全警告
Windows SmartScreen 可能提示"未知发布者",点击「更多信息 → 仍要运行」即可。
19.2 OCR 识别中文差
进入「工具 → OCR 设置」,将引擎切换为RapidOCR(默认引擎,中文效果最佳)。
19.3 坐标不准确
可能是 DPI 缩放导致。请右键 KeyMouseMate.exe → 属性 → 兼容性 → 更改高 DPI 设置 → 勾选「替代高 DPI 缩放行为」,由应用程序控制。
19.4 修改后不生效
关闭程序,重新打开即可。若涉及共享节点,注意其他方案引用该节点时也会同步更新。
19.5 打包后样式与原版不同
这是正常现象,程序已内置 Fusion 样式,确保在任何 Windows 环境下外观一致。
20. 目录结构与数据布局
程序目录分为两大块:程序设置(config/)与使用数据(userdata/)。打包后均位于 EXE 同级;源码模式下为项目根目录:
20.1 旧版自动迁移
首次启动检测到旧布局时自动迁移,无需手动操作(旧文件保留 .bak 备份):
userdata/config/config.json→config/config.jsonuserdata/config/passwords.db→userdata/passwords.dbuserdata/floatbar/→config/floatbar/- config.json 中的
plan_order/node_order/default_plan→userdata/data.json
20.2 备份与迁移
- 完整备份:同时复制
config/与userdata/两个文件夹。 - 只备数据:复制
userdata/(方案/节点/动作/密码/排序全部在内)。
20.3 二维码
「帮助 → 关于」的二维码图片按顺序查找:config/qrcode.png → EXE 同目录 → 程序目录。将图片命名为 qrcode.png 放入 config/ 即可显示。
userdata/ 文件夹复制到目标机器的 userdata/ 目录,方案、节点、动作、密码、排序全部自动生效;如需连程序设置(热键/主题/可视化配置)一起迁移,再复制 config/ 即可。
本手册随版本 2.0 更新。如有问题请访问官方网站 https://softhub.cc。