在Microsoft WebBrowser / Windows上显示文件表单Web浏览器

时间:2013-10-29 11:19:18

标签: .net vb.net winforms webbrowser-control

我在表单应用程序中使用windows forms web browser控件,并且在显示.doc.docx文件时遇到问题。

所有pdf文件似乎都能正常工作,但是当我选择word文件时,会出现带有打开,保存和取消选项的文件下载对话框。

我在这里使用的代码是

  Try
        If (dlgOpen.ShowDialog() = DialogResult.OK) Then
            If (File.Exists(dlgOpen.FileName)) Then
                 wbPreview.Navigate(dlgOpen.FileName)
            End If
        End If
  Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical)
  End Try

然后我尝试使用Microsoft WebBrowser控件,如How to use the WebBrowser control in Visual Basic to open an Office document中描述的那样,我最终遇到了同样的问题。 有什么想法解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

有一个解决方案,但我不确定它有多实用。它会导致对用户注册表的修改(尽管它不需要管理员权限):

  • 确定Microsoft Word的最新ProgID。 HKEY_CLASSES_ROOT\Word.Document\CurVer拥有它。例如,它包含Word.Document.12
  • HKEY_CURRENT_USER\Software\Classes\Word.Document.12
  • 下添加/更新以下键和值
REGEDIT4

[HKEY_CURRENT_USER\Software\Classes\Word.Document.12]
@="Microsoft Word Document"
"BrowserFlags"=dword:80000024
"EditFlags"=dword:00010000

[HKEY_CURRENT_USER\Software\Classes\Word.Document.12\CLSID]
@="{F4754C9B-64F5-4B40-8AF4-679732AC0607}"
  • 现在WebBrowser将就地加载.DOC和.DOCX文件。这是一个几乎没有记录的黑客,more info

  • 您应该保存所有现有的注册表值并将新的注册表值放在WebBrowser.Navigating上,然后在WebBrowser.Navigated上恢复原始文件。 Office 2010和IE10已经验证了这个想法。

答案 1 :(得分:1)

在microsoft支持上找到此解决方法

对于需要在Web浏览器窗口中打开Office文件的应用程序,请使用以下解决方法。但是,以后的Windows Vista中的操作系统可能不存在此Internet Explorer功能。

可在此处找到完整文章A new window opens when you try to view a 2007 Microsoft Office program document in Windows Internet Explorer 7 or Internet Explorer 8

答案 2 :(得分:-1)

主要问题是网页浏览器不知道如何打开docx文件,因此它将其作为下载提供。该文件类型为Have it open in the computer's default viewer