<h2>适用范围</h2><p>本文面向使用梦幻西游手游时空客户端的桌面自动化开发者,重点讨论可观察状态、截图证据和动作复核。内容来自当前项目的窗口选择、视觉识别、任务执行和日志记录方式,不把一次命中当成最终结论。</p><p>排错时先记录采集时间、窗口句柄、客户区矩形、截图来源、模板版本和动作结果。这样复盘时可以区分采集错误、识别错误、坐标错误和状态错误,而不是只看到最后一次点击。</p><p>窗口位置变化、Windows DPI 缩放、多开排列和遮挡都会改变像素结果。识别区域与点击位置应从当前窗口矩形计算,避免把桌面绝对坐标写成固定常量。</p><p>每一次动作都要有前置条件和后置验证。前置条件不满足时回到观察状态,后置验证失败时重新采集并记录证据,不在旧坐标上连续点击。</p><p>真实截图发布前先隐藏账号、QQ、卡密、IP、用户名、消息和其他隐私。若图片用于原理示意,正文仍然要用文字表达关键步骤。</p><p>可通过<a href="/guide.html">使用说明</a>了解基础流程,也可以在<a href="/articles/">文章频道</a>中对照窗口、任务和视觉识别记录。</p><h2>什么是幂等检查点</h2><p>幂等检查点的核心是同一状态重复进入时结果一致。任务开始、进入按钮出现、动作已发出、结果已确认和任务结束都应有清晰状态,完成状态写入后再次轮询不重复触发动作。</p><h2>动作前先观察</h2><p>执行点击、切换窗口或进入任务前,先检查当前画面是否已经处于目标状态。如果按钮消失但结果标记已存在,应直接进入下一状态;如果画面不明确,应重新截图,而不是把不确定当成未执行。</p><h2>完成标记要可解释</h2><p>标记不能只写一个布尔值。建议记录任务编号、窗口编号、开始时间、最后一次证据、动作次数和完成原因。这样既能跳过已完成步骤,也能识别标记过期或窗口已更换的情况。</p><h2>重试边界</h2><p>重试只针对采集、激活或单个动作的短暂失败,并设置次数和时间边界。超过边界后回到人工检查点,避免一个失效窗口让整个队列无限循环。</p><h2>队列恢复</h2><p>程序重新启动时先加载已保存状态,再对照当前窗口和任务配置做一次复核。状态记录与当前画面一致时继续,不一致时标记为待确认,避免恢复流程直接重复进入。</p><figure><img src="/assets/articles/2026-08-18/task_idempotency_checkpoint_flow.png" alt="任务幂等检查点流程示意图"><figcaption>任务幂等检查点的抽象流程示意,关键步骤同时以文字说明。</figcaption></figure><h2>发布前自检</h2><p>检查标题、摘要、正文结构、meta title、meta description、canonical、封面 alt、正文图注和站内链接;确认 slug 未重复,正文中的产品名称统一为梦幻西游手游时空客户端,且没有把图片当作文字内容。</p><h2>实施时的复核顺序</h2><p>执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。执行前确认状态。执行后复核结果。异常时记录证据。</p>