专业Windows视觉自动化工具包,包含11个模块:截图、OCR、模板匹配、点击、输入、环境配置及循环任务。
这是一个完整的 基于图像识别+OCR 的电脑自动化技能框架,包含多个可独立调用的最小执行单元,也可以自由组合成复杂的自动化任务。 本技能包是合集,可以根据需求拆分使用单个单元。
text
computer_skill/
├─ templates/ # 永久模板库(不删除)
│ ├─ desktop/ # 桌面图标模板
│ ├─ taskbar/ # 任务栏图标模板
│ ├─ system/ # 系统通用按钮模板
│ └─ wechat/ # 微信示例模板(以后可新增其他软件)
└─ temp/ # 临时截图(用完立即删除)
call 单元名 参数 格式即可编写新技能单元名称固定调用名功能单独调用方式初始化环境init_env创建目录结构、清空 temp、检查模板目录call init_env全屏截图screenshot_full截取整个屏幕保存为 temp/screen.pngcall screenshot_full检查截图有效性check_screenshot_valid检查是否黑屏/冻结,无效则唤醒界面call check_screenshot_valid唤醒界面wake_window解决后台不渲染、截图黑屏问题call wake_windowOCR识别ocr_recognize识别屏幕所有文字与对应坐标call ocr_recognize模板匹配template_match用模板图匹配定位图标/按钮call template_match 分类 模板名称统一定位locate_targetOCR优先,找不到再用模板匹配,返回目标坐标call locate_target 目标文字 或 分类+模板名鼠标点击mouse_click移动到指定坐标执行点击call mouse_click X Y [点击类型,默认单击]键盘输入keyboard_input定位输入框后输入文字call keyboard_input 目标坐标/描述 输入内容清理临时文件clean_temp删除临时截图,释放空间call clean_temp循环重启loop_restart等待2秒后回到截图重新开始call loop_restart
格式:
text
call [单元调用名] [参数...]
示例:
call init_envcall template_match desktop wechatcall mouse_click 100 200 双击按执行顺序,每行写一个调用指令,即可组合成自定义新任务:
格式示例(打开微信):
text
# 任务名称:打开微信
call init_env
call screenshot_full
call check_screenshot_valid
call locate_target 微信 desktop wechat
call mouse_click {{定位结果X}} {{定位结果Y}} 双击
call clean_temp
组合步骤:
call 单元名 参数 指令{{定位结果X}} {{定位结果Y}} 承接上一个单元的输出call loop_restartcall 技能名称 调用text
# 通用主流程:vision_auto_main
call init_env
call screenshot_full
call check_screenshot_valid
call ocr_recognize
# 如果需要模板匹配,加这行:call template_match 分类 名称
call locate_target 目标文字
call mouse_click {{X}} {{Y}}
# 如果需要输入文字,替换上面一行为:call keyboard_input {{X}} {{Y}} 输入内容
call clean_temp
# 需要循环就加:call loop_restart
vision_auto_main)#执行顺序(从上到下依次执行):
init_env → 初始化环境(创建目录+清空temp+检查模板目录)screenshot_full → 截取全屏保存为temp/screen.pngcheck_screenshot_valid → 检查截图是否有效
├─ 有效 → 继续下一步
└─ 无效 → 调用 wake_window 后回到 step 2 重试ocr_recognize → OCR识别屏幕所有文字与坐标template_match → 如果需要,进行模板图匹配定位locate_target → 统一定位目标(OCR优先,模板补充)mouse_click → 点击目标坐标
└─ 需要文字输入 → keyboard_input → 输入目标文字clean_temp → 删除临时截图,不保留任何临时文件loop_restart(可选) → 如果需要循环监控/重复任务,执行循环重启
└─ 不需要循环 → 流程结束