
简介Automation Operation 2.60 是一款面向办公自动化、软件测试与数据抓取场景的桌面级工具让没有编程基础的使用者也能通过可视化拖拽和模板管理快速定制鼠标键盘动作、图片/颜色/OCR识别、窗口控制、浏览器操作等自动化流程。资源包共414份文件容量约742.75MB包含300个JS脚本、24个DLL库、14个JSON配置、10个Shell脚本、9个EXE程序以及视频演示、安装包和说明文档分别承担核心逻辑、运行依赖、参数配置、跨平台调用与部署演示等用途便于按需查阅和二次开发。已有507人学习下载。该工具提供录制回放、变量管理、Excel集成、智能选择器和后台执行能力可通过快捷键与配置管理提升效率同时支持颜色、图片、OCR三种识别方式能适应普通窗口与复杂网页中的元素定位。借助这些能力读者能够搭建网页表单批量提交、批量文字提取、软件界面自动化等可复用流程减少重复性人工干预适合个人提效与团队流程标准化。1. Automation Operation 2.60为什么一款“老”GUI工具至今还是我的桌面自动化备选方案如果你跟我一样手里有一堆只有 Windows 客户端、没有 API 的老业务系统每天还得重复填表单、点按钮、核对界面数据那你大概率会走到“写自动化脚本”这一步。我试过纯 Python pyautogui也试过按键精灵最后兜兜转转把 Automation Operation 2.60 当成了主力。这是一款带完整可视化 GUI 的自动操作工具核心能力是鼠标动作模拟、键盘动作模拟和图像识别定位把三类动作拖到流程面板里就能生成可执行任务。它不要求你写一行代码但也没有把参数细节藏进黑匣子——鼠标移动轨迹、点击频率、识别阈值都能调。这篇笔记就把我在银行柜面系统、ERP 客户端和内部 OA 上用它做自动化的真实经验拆开讲适合正在选型、或者已经装了但用不深的从业者。2. 可视化编排还是硬编码我为什么选 GUI 工具而不是脚本2.1 先搞清楚它是哪一类自动化坐标级、图像级还是逻辑级桌面自动化工具按照“怎么定位目标元素”基本分三类基于固定坐标、基于图像识别、基于 UI 控件树。Python 的 pywinauto 属于控件树路线能拿到窗口句柄和控件句柄但前提是目标程序用的是标准 Win32 控件一旦碰上自绘界面、WebView 渲染界面控件树白扯。pyautogui 属于坐标级写起来简单但显示器分辨率一变所有坐标全部偏移翻车频率极高。Automation Operation 2.60 的设计思路是“图像识别 相对坐标”的组合。它在流程里先截取目标图片再通过图像匹配算法找到这张图在屏幕上的当前位置然后以这个位置为基准偏移出鼠标要点击的坐标。这么一来窗口位置变了、稍微移了几像素它依然能锁住目标。这个机制和我后来用 OpenCV 写模板匹配是同样的逻辑但它把匹配过程封装成了可视化节点拖出来就能设参数不用自己写多尺度缩放和灰度转换。选型时我的判断标准很简单目标软件能不能稳定提供控件句柄。能就用 UI 控件方案不能就果断上图像识别方案。Automation Operation 属于后者而且它是 GUI 可视化编排流程里每一步是鼠标动作还是识别动作、识别失败往哪跳图上看得一清二楚。这对后续维护意义很大——脚本代码写得再好半年后你自己也未必记得为什么在那个地方 sleep 了 3 秒但一个可视化的流程分支谁打开都能看懂。2.2 首次安装与第一个任务从空流程到跑通一次鼠标点击安装没什么特别的Windows 10/11 都能跑装完启动会看到一个空白流程设计器上方是动作库中间是流程画布下方是参数面板。我建议第一次使用不要急着编排复杂逻辑先创建一个“打开计算器并点击数字 5”的简单任务把从启动到退出的完整链路走通。操作上分四步。第一步在动作库里拖一个“启动程序”节点程序路径填calc.exe工作目录留空。第二步拖一个“等待”节点等待时间设 1.5 秒这是等计算器窗口完全渲染出来我习惯把这里的值写得偏保守宁可多等也不要还没出现就抢跑。第三步拖一个“识别并点击”节点点进参数区会进入截图模式框选计算器上的数字按钮 5相似度阈值先保持默认点击方式选左键单击。第四步再拖一个“等待”节点然后拖一个“关闭窗口”节点窗口标题写“计算器”。# 这里不是 Automation Operation 的脚本语言而是我后来用它的“导出流程”功能 # 生成的一段参考伪代码目的是让你理解每个节点背后发生了什么 def run(): start_program(pathcalc.exe, workdir) wait(seconds1.5) image_result find_image(templatebtn_5.png, threshold0.85, regionfullscreen) if image_result.found: mouse.click(ximage_result.center_x, yimage_result.center_y, buttonleft) else: log.error(识别数字5失败) wait(seconds0.5) close_window(title计算器) run()参数说明threshold0.85是模板匹配的相似度阈值0.85 表示匹配相似度达到 85% 才认定找到。这个值我后面会反复调识别目标颜色单一、背景干净就提到 0.9目标区域复杂或者存在多窗口干扰就降到 0.75 左右。regionfullscreen表示在整个屏幕上搜索如果知道目标大概在屏幕哪个区域一定要改成指定区域既提速又防误判。这段逻辑也解释了 Automation Operation 的实际运行机制——每执行到识别节点它都会实时截取当前屏幕然后用模板图在当前截图中做匹配匹配到的中心点就是鼠标点击坐标。2.3 鼠标动作与键盘动作的参数设计延迟、轨迹、按键组合跑通第一个点击之后接下来最值得花时间调的是鼠标动作和键盘动作的参数。先说鼠标。Automation Operation 的鼠标点击动作里有三个容易忽略的选项移动方式、移动速度和点击间隔。移动方式默认是“瞬间移动”也就是鼠标直接从当前位置跳到目标点这在大多数自动化场景下没问题但如果目标软件有鼠标悬浮检测、会响应悬浮事件瞬间移动就容易漏掉悬浮态。我一般会选“按曲线移动”移动速度设成 30 到 50 像素每帧模拟真实人手从屏幕一角划过去的轨迹。曲线移动的兼容性更好代价是每次执行慢几百毫秒但对需要鼠标悬浮后才弹出的菜单这种慢是必要的。键盘动作的参数我踩过坑。工具里的“发送按键”节点支持普通字符和组合键比如CtrlAltS。关键的是按键间隔设置默认值是 10 毫秒也就是每个键按下到抬起之间的时间。大多数文本框输入没问题但遇到老系统里的 Web 控件或者 Java Swing 控件按键间隔太短会丢字符。我习惯把这个值调到 30 毫秒以上尤其输入 18 位身份证号等长文本时丢了位只能整段重来成本更高。组合键我则关注“按键保持时间”一些老客户端识别不了太快按下太快的组合键保持时间至少设 200 毫秒。参数层面我把鼠标移动速度、按键间隔、识别阈值这三项视为一个系统的整体——识别慢一点鼠标移动快一点整体时间可以从 3 秒压缩到 2 秒反过来也一样。不要单独死磕某一个参数最好用真实业务场景跑十遍统计平均耗时。这是可复现性最强的调参路径。3. 把“识别”真正用好图像定位、区域限定与多显示器坐标系3.1 模板图片的截取规范尺寸、内容边界和灰度干扰图像识别节点的效果好不好60% 取决于模板图截得对不对30% 取决于阈值10% 才是识别算法。我第一次使用直接截图按钮的四五个像素结果识别率惨不忍睹后来才明白模板图的内容边界和尺寸直接影响匹配可信度。截取模板图首先要保证内容完整。比如识别一个“确认”按钮要把整个按钮外围轮廓包含进去四周留 2 到 4 像素的边距。如果只截了按钮中间几个字图片特征太少屏幕上任何长得像这几个字的区域都可能是误报目标。其次要避免截取动态内容。典型错误是把系统日期、头像这类会变化的区域当作模板特征下次运行日期变了就匹配不上。我通常只截目标区域左上角到右下角的静态纹理比如按钮的下边框和右侧图标这些部位基本不会变。第三模板尺寸尽量控制在 30×30 以上。小于这个尺寸的特征点太少大于 200×200 又可能包含太多背景匹配时受窗口缩放影响明显。Automation Operation 的识别节点支持彩色匹配和灰度匹配两种模式。彩色匹配对颜色变化敏感适合界面主题固定、背景干净的软件灰度匹配忽略颜色差异只比对形状和明暗分布。我的经验是老 ERP 系统界面配色比较固定用彩色匹配Web 页面或者有主题换肤功能的客户端用灰度匹配。两者识别耗时差不了多少但准确率在不同场景下差距很大。3.2 用查找区域做限定为什么 fullscreen 是性能杀手全屏查找表面省事实际上是最容易出问题的方案。第一是慢。1920×1080 分辨率下做一次全屏模板匹配消耗的时间是限定区域的 10 到 20 倍。如果你的流程里有十几个识别节点累积延迟直接让自动化变成龟速。第二是误识别率高。整个屏幕上相似元素多一个“确定”按钮在不同弹窗里可能出现多次全屏找时工具默认返回第一个匹配结果不一定是你要的那一个。我一般会在编排流程时先手动打开目标界面确认目标元素位于屏幕大概哪个区域然后在识别节点的“查找区域”参数里设定一个缩小后的矩形。比如目标是右上角的搜索栏区域就设成(右半边屏幕)或者直接填四个边界值。有些版本的 Automation Operation 支持运行时动态获取当前窗口位置再以窗口原点作为参考坐标系——这个功能强烈建议用它能把区域限定到窗口内部窗口挪到第二显示器也能正确定位。做法是给流程加一个“获取窗口位置”节点输出左上角坐标后续识别节点的区域偏移基于这个坐标计算。这些参数的填写逻辑和 OpenCV 的matchTemplate几乎一样只是 GUI 工具把多尺度缩放和金字塔搜索封装掉了。如果你后面想排查为什么识别慢打开工具自带的日志看每个识别节点实际耗时凡是耗时大于 500 毫秒的基本都是全屏搜索。3.3 键盘输入与识别组合做一个稳定的“定位→输入→校验”动作单个识别节点只能解决“找到目标”业务往往还需要在目标位置输入内容。Automation Operation 的常规做法是识别节点后接一个“键盘输入”节点输入器的焦点自动就定位到识别出的区域。这个组合里有三个细节要注意。细节一识别节点找到目标后工具默认会把鼠标移到目标中心但不会自动点击。如果目标是个输入框需要先补一个“左键单击”节点让输入框获得焦点再发送按键。否则键盘输入直接落到当前系统焦点控件上而系统焦点往往还在上一个窗口。细节二输入内容包含中文时部分老版本工具有编码问题。我遇到的典型表现是识别节点正常、鼠标点击正常但中文输入到界面变成乱码。解决方法是改用“粘贴文本”模式把内容先复制到剪贴板再模拟CtrlV绕开键盘事件注入层面的中文 IME 兼容问题。细节三输入完成后建议加一个“截屏保存”节点把执行结果截图存到日志目录。这不算功能必需但自动化操作出问题时回看截图定位比看纯日志高效得多。# 同样的这是从 Automation Operation“定位→输入”流程导出的伪代码参考 # 展示的是识别输入框、点击聚焦、粘贴文本、校验结果的组合逻辑 def fill_form(): field find_image(templateinput_customer_name.png, region(10, 10, 800, 600)) if not field.found: log.warning(客户名称输入框识别失败尝试备用模板) field find_image(templateinput_customer_name_v2.png, region(10, 10, 800, 600)) mouse.click(field.center_x, field.center_y, buttonleft) wait(0.2) clipboard.set_text(张三科技有限公司) keyboard.press(hotkeyCtrlV, hold_time0.15) wait(0.3) screenshot.save(pathruns/step_003.png) fill_form()逻辑说明这段伪代码先是按主模板查找输入框找不到就降级到备用模板这是我在 GUI 编排里常用的容错写法。找到后单击聚焦等待 200 毫秒让输入框进入可输入状态然后走剪贴板粘贴而不是逐字输入。最后保存截图用于事后比对。参数上值得留意的是hold_time0.15组合键按下时间太短容易被目标系统判定为无效按键太长又可能触发长按功能。0.15 秒是我在多数 Windows 客户端上验证过的中庸值个别系统需要调整到 0.2 以上。4. 避坑实践坐标偏移、识别漂移与执行时序的五条血泪经验4.1 鼠标点击偏移半个屏幕高 DPI 缩放惹的祸现象脚本在分辨率为 1920×1080、缩放 100% 的机器上正常执行换到一台 2560×1440、缩放 150% 的电脑上识别节点找到的位置是对的但鼠标实际点击点比识别结果偏右下移了几百像素直接点到了错误按钮上。原因截图匹配发生在真实物理像素层面而鼠标事件的注入坐标经过了 Windows DPI 虚拟化缩放换算。Automation Operation 如果没有做坐标系的 DPI-aware 处理就会出现识别坐标是物理像素、鼠标注入是虚拟坐标的错位。解决第一优先级在工具设置里找到 DPI 缩放模式尝试切换为“系统 DPI 感知”或“每显示器 DPI 感知”。第二优先级右键工具 exe 文件在兼容性里勾选“替代高 DPI 缩放行为”缩放执行选“应用程序”。这两个操作二选一改完重启工具。从那以后我布置任何新机器第一步就是检查显示缩放比例不为 100% 的先统一改设置再跑回归测试而不是直接信任旧脚本。4.2 图像识别偶尔追到错误窗口模板图里带了边框阴影现象同样的流程十次里有八次正常两次识别到界面右上角的关闭按钮上去了。日志显示匹配相似度都超过了阈值但目标根本不是同一元素。原因我最初截取模板时把窗口的一个圆角边框连同阴影一起截进去了。尺寸小的模板图在灰度匹配下圆角和阴影组合出来的形状和关闭按钮的叉形轮廓局部相似度很高。而阴影区域是渐变半透明的在不同时机截屏时受系统渲染影响会有细微差异所以不是每次都会误判飘忽不定。解决重新截模板图只保留按钮内部的文字和主要图标特征四周留边控制在 2 像素。同时把识别阈值从 0.85 提高到 0.9并限定查找区域到业务弹窗的右下角范围。如果还是偶发误判在流程里加一个“校验节点”——识别完成后读取该区域文本确认是预期内容再继续。这属于用流程逻辑兜底匹配算法的不足是我最推荐的稳妥方案。4.3 脚本运行到一半突然停下等待节点和焦点抢占有直接关系现象包含 20 个节点的流程跑到第 7 个识别节点时经常卡住不动判断是识别找不到目标。但手动把窗口切换到前台立即重新执行第 7 步又能顺利通过。原因前一个节点点击后触发弹窗弹窗内部有异步加载过程界面上按钮处于可点击状态但点击后的业务逻辑还没准备好。我原来设置的等待时间是固定值 2 秒有时网络快 1 秒就绪有时网络慢需要 3 秒。同时新弹窗出现时会抢占 Windows 前台焦点Automation Operation 的识别节点在窗口失去前台焦点时截屏内容不完整匹配大概率失败。解决把固定等待改成“轮询等待”做法是拖一个“重复执行”节点包裹住识别逻辑每轮先检测目标是否存在不存在等 500 毫秒再查最多循环 10 次。这种模式把固定等待变成条件等待只在目标真正就绪时才继续下一步。我现在编排所有和弹窗交互的流程都会在弹窗出现后加至少一轮目标检测而不是盲目 sleep。这几乎是避免“一半就停”的最有效手段。4.4 长时间无人值守后越跑越慢日志文件无限膨胀现象一个无人值守任务每半小时跑一次跑了两天之后单次执行耗时比最初多了 3 倍。识别节点倒是没失败就是每个节点响应都慢。原因任务里每步截图都追加写入日志文件两天累计了上千张截图和几十 MB 文本日志。文件变大后工具每次写日志前做文件打开和定位写入的操作开销显著增加。更隐蔽的是截图文件一直保留在内存缓冲里没有释放工具整体占用的内存从 100 MB 涨到 700 MB。解决在流程末尾增加一个“日志清理”节点保留最近 100 条记录删除更早的截图文件和日志行。或者更简单——在工具设置里开启“日志按大小自动滚动”把单文件上限设为 5 MB。这之后我养成的习惯是每周清理一次运行目录自动化程序自己不会做这件事得靠流程编排时预留资源回收节点。4.5 相似度阈值改了没用模板图缓存没有及时刷新现象我重新截取了更精确的模板图替换掉旧的模板文件但重新运行流程发现识别行为没有任何变化依然沿用旧模板的匹配结果。原因工具把模板图加载后缓存在内存里替换了磁盘文件但进程没重启缓存还是旧版本。这在 GUI 工具里非常常见特别是长时间开着流程设计器反复调试时。解决替换模板文件后手动重启 Automation Operation或者在流程开头加一个“强制刷新资源”节点确认日志输出里模板的加载路径是对的。我的习惯是每次改模板后先打开预览窗口确认新的模板图像确实生效再跑全流程。多花十秒能避免在错误模板基础上反复调参那才是真正的时间黑洞。5. 给流程加“后悔药”验证点、异常分支与一个收尾习惯自动化脚本做得再稳也难免遇到目标系统临时升级、界面文案变化这种不可控事件。最后一节我不讲新功能只讲怎么用现有节点搭出“可回退”的流程结构这也是我判断一个自动化方案是否适合生产落地的分水岭。第一个技巧是给每个关键步骤加“验证分支”。比如点击“提交订单”按钮后原流程直接进入下一步现在我在其后加一个“识别成功标志”的菱形判断节点——识别目标界面是否出现“订单提交成功”字样出现就走正常流程没出现就跳到异常分支。异常分支不直接报错而是先截屏存档随后尝试按一次 ESC 键关闭可能弹出的错误提示框再重新识别一次。这两次机会能覆盖相当一部分偶发弹窗和页面加载延迟问题。工具每个判断节点都支持“执行成功”和“执行失败”两条出边这个能力和编程语言里的if/else是等价的不用白不用。第二个技巧是细化异常分支的恢复动作。以前我认为失败后截图、发一个日志就够后来发现完全不够——无人值守时日志不会被立刻看到隔天再处理当时的现场已经消失。现在我要求流程在连续失败两次以上时自动关闭并重启目标业务系统然后回到流程起始位置重新执行。这就需要“循环”和“计数”两个节点配合。循环次数上限设为 3超过以后才真正终止任务并发送桌面通知这相当于武断的终断条件防止异常循环把系统资源耗尽。第三个技巧和键盘状态有关。自动化脚本跑完之后如果最后的键盘动作还按着某个修饰键比如 Alt 键没释放后续人手操作鼠标会出现各种灵异现象——点击变右键菜单、快捷键莫名触发。我习惯在流程末尾强制加一个“释放所有修饰键”节点模拟按下并释放 Alt、Ctrl、Shift 各一次。这不算复杂功能但救过我好几次尤其是脚本被手动中断后系统键盘状态错乱。手动中断时工具不会自动补发释放事件只能靠一个收尾动作来兜底。如果你也常做这类桌面自动化我的建议是不要急着堆复杂流程——先把一个只有“识别、点击、等待”的最小任务跑满五十次统计失败率和失败模式再决定要不要加复杂分支。从那以后我每次发布新流程都强制自己跑一遍“模拟失败”测试故意把模板图片换成乱码确认异常分支真的会按预期触发故意让目标程序不启动确认重试逻辑没有死循环。这套流程走完心里才有底。希望这篇笔记能帮你少踩几个坑把 Automation Operation 2.60 真正用起来。遇到类似问题欢迎对照检查也祝你一次跑通。本文还有配套的精品资源点击获取