本文基于金手指项目当前可见的 Windows 窗口、截图识别、任务状态和日志结构整理。产品适配对象统一写作“梦幻西游手游时空客户端”。文章描述的是排查与开发方法,不把流程示意图当成真实软件界面,也不承诺固定结果。实际使用时,应以当前版本代码、真实窗口画面和本次运行日志为准。

先确认输入边界

桌面自动化的问题通常不是某一个坐标本身,而是输入证据已经发生变化。开始检查前,先写下程序版本、目标窗口标题、窗口句柄、外框矩形、客户区矩形、显示器编号、DPI 缩放、任务阶段和素材版本。窗口标题只能用于初筛;句柄、客户区和截图时间需要放在同一个上下文中。若目标窗口没有出现,应该记录“未找到窗口”并停在观察阶段,不要把上一轮的坐标或候选结果当作本轮输入。

记录与复核方法

每次只改变一个变量,并保留改变前后的值。例如先只重新选择窗口,再检查客户区;如果仍然失败,再检查截图区域或模板尺寸。日志至少记录采集时间、窗口矩形、裁剪区域、候选位置、识别分数、阈值、逻辑坐标、屏幕坐标、动作结果和下一状态。这样才能区分没有采到画面、采到但没有候选、命中后坐标换算错误和点击后状态没有变化。## 先把日志按状态排序

一次识别失败可能同时涉及截图、窗口移动、候选过滤和点击结果。回放时先按时间排序事件,标出采集、判断、动作、结果四类节点,再对照任务状态字段。若日志只有“失败”一词,先补齐失败发生前的状态、窗口矩形、区域和分数,避免从最后一帧反推全部原因。

用状态字段定位分支

当状态仍是等待窗口,问题通常在窗口枚举或权限;状态已经进入识别,重点看截图尺寸、区域和模板;状态进入动作但没有结果,则检查坐标换算和点击后的新帧;状态反复回到同一分支,则检查重试边界和状态迁移条件。保留运行时间、版本、窗口信息、原始截图、候选数据和最终状态,下一次只比较一个变量。

形成回放记录

回放的目标不是证明某次运行一定成功,而是让开发者知道下一次要采集哪一份证据、修改哪一个条件,以及何时停止继续尝试。每次修复都附上前后状态和新的验证结果。

实际执行清单

执行前再次核对适配对象名称、目标窗口、客户区坐标、素材版本和停止控制;执行中保留关键截图和日志;执行后确认状态字段、画面变化和资源释放。遇到空截图、候选为空、窗口移动或点击后无变化时,先回到观察状态,不用固定位置的兜底点击替代真实入口。以上信息应同时写入正文和日志,便于后续复核。

流程示意:任务日志怎么回放一次识别失败:从状态字段定位分支
流程示意:任务日志怎么回放一次识别失败:从状态字段定位分支

本文只总结当前项目可见代码和常见排查路径,不虚构用户案例、效果、排名或收录数据。版本、窗口布局和素材发生变化后,需要重新采集证据并更新检查清单。

补充复核:每次运行都应记录窗口、截图、候选、动作和结果,遇到异常先回到观察状态,再根据新的证据决定重新选择、重新采集、重新加载素材或结束阶段。

补充复核:每次运行都应记录窗口、截图、候选、动作和结果,遇到异常先回到观察状态,再根据新的证据决定重新选择、重新采集、重新加载素材或结束阶段。

补充复核:每次运行都应记录窗口、截图、候选、动作和结果,遇到异常先回到观察状态,再根据新的证据决定重新选择、重新采集、重新加载素材或结束阶段。

补充复核:每次运行都应记录窗口、截图、候选、动作和结果,遇到异常先回到观察状态,再根据新的证据决定重新选择、重新采集、重新加载素材或结束阶段。