You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows更新KB5015807后AxSHDocVw.AxWebBrowser无法嵌入Word

解决AxSHDocVw.AxWebBrowser嵌入Word失效问题(KB5015807更新后)

问题背景

长期通过AxSHDocVw.AxWebBrowser控件嵌入Word制作邮件合并模板,2022年7月Windows更新KB5015807推送后,原功能失效:Word不再嵌入控件内部,而是独立启动无功能区菜单栏的新实例。此前用于修复同类问题的注册表方案已无法生效。

加载文档的核心代码:

public void LoadDocument(int? documentId, bool hideDocument)
{
    _templateVersionDataRow = 
         Business.BusinessLogic.DocumentTemplate.GetLastVersion(documentId);

    _filePath = String.Format("{0}{1}.doc", Path.GetTempPath(), Guid.NewGuid());

    File.WriteAllBytes(_filePath, _templateVersionDataRow.Template);

    if (!hideDocument)
        BrowserFrame.Navigate(_filePath);
}

原失效的注册表修复内容:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8]
"BrowserFlags"=dword:80000024
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.RTF.8]
"BrowserFlags"=dword:80000024
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.12]
"BrowserFlags"=dword:80000024
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.DocumentMacroEnabled.12]
"BrowserFlags"=dword:80000024
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.8]
"BrowserFlags"=dword:80000A00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.12]
"BrowserFlags"=dword:80000A00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.SheetMacroEnabled.12]
"BrowserFlags"=dword:80000A00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.SheetBinaryMacroEnabled.12]
"BrowserFlags"=dword:80000A00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.Show.8]
"BrowserFlags"=dword:800000A0
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.Show.12]
"BrowserFlags"=dword:800000A0
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.ShowMacroEnabled.12]
"BrowserFlags"=dword:800000A0
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.SlideShow.8]
"BrowserFlags"=dword:800000A0
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.SlideShow.12]
"BrowserFlags"=dword:800000A0
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.SlideShowMacroEnabled.12]
"BrowserFlags"=dword:800000A0

可行解决方案

1. 补充64位系统注册表项

KB5015807可能修改了64位系统下的注册表路径,需添加Wow6432Node下的对应项:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\Word.Document.8]
"BrowserFlags"=dword:80000024
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\Word.RTF.8]
"BrowserFlags"=dword:80000024
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\Word.Document.12]
"BrowserFlags"=dword:80000024
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\Word.DocumentMacroEnabled.12]
"BrowserFlags"=dword:80000024

导入注册表后重启应用测试。

2. 启用Word的DDE支持

部分更新会默认禁用DDE,导致嵌入触发失效:

  • 打开Word,进入文件>选项>高级
  • 在常规区域勾选允许来自Office程序的DDE
  • 重启Word和应用程序

3. 替换Navigate为Navigate2方法

尝试使用Navigate2并添加强制嵌入的参数:

if (!hideDocument)
    BrowserFrame.Navigate2(new Uri(_filePath), 0x00000020); // 0x20参数强制在控件内打开

该参数会覆盖默认的新窗口打开行为,强制文档嵌入控件。

4. 迁移至WebView2控件

AxSHDocVw基于IE内核已停止维护,推荐切换到WebView2(Chromium内核),对Office文档嵌入支持更稳定:

  • 安装Microsoft.Web.WebView2 NuGet包
  • 替换原有控件为WebView2,加载代码改为:
webView2.CoreWebView2.Navigate($"file:///{_filePath}");

需确保客户端已安装WebView2运行时。

5. 安装Office后续更新补丁

KB5015807的问题可能在后续Office安全更新中被修复,检查并安装最新的Office补丁,部分用户反馈更新后嵌入功能自动恢复。

内容的提问来源于stack exchange,提问作者Award

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 06:45:27