通过 ms-word:ofe|u| 打开 URL 文档时,误弹“无法打开 <GUID>”

一、环境

  • WPS Office 企业版:12.1.0.29161(Windows 10)

  • 同一台机器安装有 Microsoft Office,Windows 的 ms-word 协议处理程序为

C:\Program Files\Microsoft Office\Root\Office16\protocolhandler.exe

  • 对照测试:WPS 个人版 <12.1.0.29158> 无此问题

二、复现步骤

  1. 准备任意可访问的 docx URL(不需要 WebDAV,普通 HTTP 即可),例如

http://127.0.0.1:8765/sample.docx

  1. 在浏览器或资源管理器中执行

ms-word:ofe|u|http://127.0.0.1:8765/sample.docx

  1. Windows 由 Office protocolhandler.exe 转交给 WPS,WPS 进程实际收到的命令行为:

"wps.exe" /cid 9E01F8D0-ACD8-4F50-93D0-8EEAD61BDDCC "http://127.0.0.1:8765/sample.docx&#34;

  1. 文档可以正常打开,但同时弹出模态框:

无法打开 “9E01F8D0-ACD8-4F50-93D0-8EEAD61BDDCC”。

此文件可能被重命名、删除或移动了位置。

三、关键证据

  1. 弹窗中的 GUID 与 WPS 命令行上的 /cid 参数完全一致,且每次打开都会变化

(另一次复现为 DE2382C3-E96E-4D2A-A1AD-13A935D0DD46)。

  1. 该 GUID 对应的文件在 %TEMP%、WPS 缓存目录、Microsoft OfficeFileCache

中均不存在。

  1. 文档本体不受影响:点击“确定”后可正常查看/编辑/保存(WebDAV 场景可保存),

弹窗属于多余的误报。

  1. 对照测试 1:直接以

wps.exe "ms-word:ofe|u|http://127.0.0.1:8765/sample.docx&#34;

启动(不经过 Office protocolhandler,不传 /cid),WPS 可正确解析 ofe 前缀

并打开文档,不弹任何错误。

说明 WPS 自身处理 ofe|u| URL 正常,问题出在对 /cid 参数的处理。

  1. 对照测试 2:WPS 个人版在完全相同的操作下不弹窗。

四、预期行为

  • /cid 仅在使用 Microsoft Office 的 OfficeFileCache 机制、且对应缓存项存在时

才应被当作本地文件使用;

  • 普通 HTTP/WebDAV URL 场景下应忽略 /cid 直接打开 URL,或静默回退,

不应弹出“文件不存在”的模态框。

五、影响

企业版用户每次点击系统里的“在线编辑(WebDAV)”都会看到该弹窗,需手动点

“确定”,容易被误认为文件丢失或编辑失败;个人版无此现象。

福建省
浏览 245
收藏
1
分享
1 +1
+1
全部评论