3

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

次に、Visual Basic で WebBrowser コントロールを使用して Office ドキュメントを開く方法Microsoft WebBrowserで説明されているように、コントロールを使用してみましたが、同じ問題が発生しました。これを解決するアイデアはありますか?

4

3 に答える 3

1

Microsoft サポートでこの回避策を見つけました

Office ファイルを Web ブラウザ ウィンドウ内で開く必要があるアプリケーションの場合は、次の回避策を使用してください。ただし、この Internet Explorer 機能は、Windows Vista 以降の将来のオペレーティング システムには存在しない可能性があります。

Windows Internet Explorer 7 または Internet Explorer 8 で 2007 Microsoft Office プログラム ドキュメントを表示しようとすると、新しいウィンドウが開きます

于 2013-10-30T09:02:21.627 に答える
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 ドキュメント"
"BrowserFlags"=dword:80000024
"EditFlags"=dword:00010000

[HKEY_CURRENT_USER\Software\Classes\Word.Document.12\CLSID]
@="{F4754C9B-64F5-4B40-8AF4-679732AC0607}"
  • .DOC および.DOCXWebBrowserファイルをインプレースでロードするようになりました。これはほとんど文書化されていないハックです

  • 既存のレジストリ値を保存し、新しい値を に保存してWebBrowser.Navigatingから、元の値を に復元する必要がありますWebBrowser.Navigated。このアイデアは、Office 2010 および IE10 で検証されています。

于 2013-10-29T13:46:53.847 に答える
-1

主な問題は、Web ブラウザーが docx ファイルを開く方法を認識していないため、代わりにダウンロードとして提供することです。そのファイルの種類のコンピューターの既定のビューアーで開いてください。

于 2013-10-29T12:18:01.233 に答える