2.0版本的,找查文字功能提示错误

BUG反馈 · 157 次浏览
千隐盟 创建于 18小时58分钟前

找查文字功能提示错误


回复内容
CL 14小时21分钟前
#1

感谢反馈,我研究一下。

CL 14小时14分钟前
#2

以下是AI的分析。  Windows OCR 初始化失败,以及离线模型未能找到。

要找的是什么文字? 希望有整屏截图和目标位置截图。

Windows OCR 初始化失败,可能是windows缺少什么组件导致的。 方便的话,试一下用1.x 调试运行看看调试文件中windows ocr是否能找到。

=====

结论:这是“Windows OCR 调用异常 + 离线 OCR 未匹配到目标”的叠加问题,截图还不足以确定最终根因。

结合原帖及截图,当前代码能确认:

提示含义
Windows OCR失败:ClassFactory 无法供应请求的类Windows OCR 调用链中的某个 WinRT 类激活失败,不是普通的文字识别失败。
离线OCR引擎未能找到文字已返回非空识别文字块,但未匹配到目标文字;不是离线组件未安装。

调用流程是:Windows OCR → 失败后尝试离线 OCR → 两者都没找到才报错,见 [TextFinder.cs (line 562)](/D:/Work/Quicker/QuickerPc/Quicker/Actions/XActions/BuildinRunners/Images/TextFinder.cs:562)。因此,Windows OCR 报错没有阻止备用识别。

Windows OCR 部分优先怀疑系统组件或运行时兼容性。当前封装依次创建内存流、解码位图、创建语言对象和 OCR 引擎,任何一处激活失败都可能落成这条提示;现有提示只保留 ex.Message,无法判断具体失败位置。另外,微软文档明确指出该 OCR API 的桌面应用支持要求包身份,这也是兼容性排查线索,但不能直接认定为本例原因。微软文档

离线 OCR 部分,代码采用文字块内的子串匹配,忽略大小写,并在失败后尝试去除普通空格;没有跨块拼接或容错匹配。因此错字、跨块拆分、查找范围不正确等都可能导致失败,见 [匹配实现 (line 643)](/D:/Work/Quicker/QuickerPc/Quicker/Actions/XActions/BuildinRunners/Images/TextFinder.cs:643)。

建议下一步取得这几项最小证据:

  • 具体 Quicker 版本、Windows 版本,以及同机 V1 是否正常,判断是否为 V2 回归。
  • 动作或步骤参数、目标文字、查找区域原图,核对离线识别与匹配。
  • Windows OCR 完整异常堆栈和 HRESULT,定位失败的 WinRT 类。

“跳过 Windows OCR 引擎”只能避开第一段异常;由于当前离线 OCR 已尝试且未命中,单独勾选它不能解决这次找不到文字的问题。

本次仅做只读分析,未修改代码,也未在反馈者环境复现。

回复主贴