OSSのWebBrowserコントロール - 最新のブラウザをWPFアプリケーションに組み込む方法は?

このQ&Aのポイント
  • C#で作成されたWPFアプリケーションでWebページ表示機能が正常に動作しない問題が発生しています。
  • 問題の原因はWPFのWebBrowserコントロールが古いブラウザエンジンを使用していることであり、目的のhtmlを正しくレンダリングできないためです。
  • クライアント環境に変更を加えることが難しいため、インストーラでレジストリを変更する方法は難しいです。最新のブラウザを組み込むための方法はありますか?
回答を見る
  • ベストアンサー

OSSのWebBrowserコントロール

C#でWPFアプリケーションを作成しています。Visualstudio2012で.Net 3.5にしています。 本アプリケーションにはWebページを表示する機能がありますが、Webページが正常に表示できません。動かしてみるまで気が付かなかったのですが、WPFのWebBrowserコントロールが使用するブラウザエンジンはIE7であり、たいへん古いため、目的のhtmlを正しくレンダリングできないことが原因と判明しました。 レジストリでWebBrowserコントロールが参照するIEのバージョンを変更できるようですが、クライアント環境に変更を加えることが難しいため、インストーラでレジストリを変更するという方法は難しいと思います。 そこで、最近のブラウザをWPFアプリケーションに組み込みたいのですが、方法はないでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • osiete02
  • ベストアンサー率100% (1/1)
回答No.1

簡単に使えるWebBrowser部品はないと思います。 レジストリエディタでFEATURE_BROWSER_EMULATIONを見るとわかりますが、いろいろなソフトがレジストリを変更してWebBrowserコントロールを使用しています。インストール時にOSのバージョンをチェックして、Windows7以上であればIE8を使用するように設定しても問題ないのではないでしょうか。

関連するQ&A

  • WebBrowserコントロールでの印刷

    VBのWebBrowserコントロールを使ってHTMLドキュメントの印刷を行う アプリケーションを作っています。 WebBrowser1.ExecWB OLECMDID_PRINT,0 と書くと印刷はできますがヘッダーとフッダーが印刷されてしまいます。 IEの設定を変えると表示されなくなりますが、VBのコード上からここら辺を制御する方法がわかりません。 どなたか分かる方教えてください。 お願いいたします。

  • WebBrowserコントロールかIEオブジェクトどちらが簡単

    プログラム初心者です。プログラムでブラウザに表示されたページのデータを取得して加工したいと思っています。そこで、どうやって実現できるかを調べたところIEオブジェクトをCOMコンポーネントCreateObject("InternetExplorer.Application")という感じでオブジェクトを作ってIEと同じ動作をすることができるという情報をキャッチしました。 またVisual BasicにWebBrowserコントロールなるものがあり、そちらでもIEと同じ振る舞いをさせることもできるし、サイト内の情報を取得して加工することもできると書かれていました。 プログラムは初心者ですが、どちらの方法が簡単でしょうか?ご教授お願いします。

  • WebBrowserコントロールでページが閉じられたことを検出したい

    こんにちは。いつもありがとうございます。 .net初心者です(しかもVB) 今回も質問です。 javascript等でwebbrowserが閉じられた場合にそれを検出したいのですが、どのようにしたらよいでしょうか? ネット上で調べたところWindowClosingというイベントがあるみたいですが、私の使っているものにはないみたいでした。 なくなってしまったのでしょうか?VisualBasic2008です。 ちなみに複数タブでページを開けるタブブラウザを作っているのですが、 scriptでページが閉じられた際、見た目上はなにも起こりませんが、 別のタブに移動してからまたその(閉じられたページの)タブに戻ろうとすると、タブは移動しているもののタブページ内のブラウザは表示されません。 (さもページが透明になってしまったかのように前に見ていたページがそのまま表示されている状態です。) これを、タブも一緒に閉じたいのでなんとかWebBrowserコントロールが閉じられたことを検知したいと思っています。 ページが閉じられる際に、WebBrowserのdisposedイベントが呼ばれているかと思って試してみましたが、呼ばれていないようでした。 なにかいい案がありましたらよろしくお願いします。

  • Visual Basic 6.0 の WebBrowser コントロー

    Visual Basic 6.0 の WebBrowser コントロールが使えなくなり困っています。 WindowsXpマシンで、VB6でプログラムを作っています。プログラムにはコンポーネント追加で加えたWebBrowser コントロールを使っています。 今年の3月頃まではIE6を使っており、問題なく使えていました。4月14日になってやってみるとWebBrowser1.Navigateが使えないというメッセージがでます。このためプログラムを修正できなくなりました。以前、コンパイルしていたEXEプログラムは動きます。 3月末頃にIE8にしたのが悪かったかと思って、IE6の別のパソコンでやってみたのですが同じメッセージでVB6で作ったプログラム内のwebブラウザが使えません。 「Visual Basic 2005 では Windows フォームの WebBrowser コントロールに置き換えられています。」という案内を見つけましたが、Visual Basic 2005に変えたつもりはありません。 読んでも(頭が固いようで)どうしたら良いのか分かりません。

  • WebBrowserコントロールでExplorerのようなものを作りたいのですが困っています

    VB.NET2008にて、開発中です。 WebBrowserコントロールを使用してExplorerを作っているのですが、たとえば WebBrowser1.Navigate("C:\Users\" + Environment.UserName + "\Desktop") とすることによってコントロール上にデスクトップにあるファイルが表示されますよね? そこで、表示されたファイルのうち1つをを選択し、そのファイル(もしくはディレクトリ)のフルネームを取得したいのですが、どうもやり方がわかりません。 どなたかこの方法を知っている方、いらっしゃいませんでしょうか?

  • VBでのWebBrowserコントロール

    VBで、WebBrowserコントロールを使用して外部サイトに接続し、 接続先のサイトの操作を行い表示された結果をVBの画面上に表示しています。 しかし、その処理が非常に重く表示に数分以上掛かっていまう場合があります。 応答を待っている間に、同じPC端末からIEを立ち上げ同じサイトにログインして 同じ操作をすると10秒も掛からず行えてしまします。 その為、インフラや接続先のサイトの問題ではないと思われます。 WebBrowserコントロールを使用すると通常の操作以上に時間がかかるものなのでしょうか? あるいはWebBrowserコントロールには問題があってパッチが出ていると言う事はあるでしょうか? ご存知の方がいらっしゃればご教授お願いいたします。 【環境】 Windows 2003 ServerR2 Microsoft .NET Framework3.5 Microsoft Visual Basic 2008 Ver3.5 SP1

  • C#2010 webBrowserについて

    こんにちは。WebBrowserコントロールを使ってウェブページを表示するプログラムを作成しています。 私の環境はWindows7の64bitでIE9がインストールされています。また、.NETFrameworkは4.5です。 WebBrowserはデザイナ上でフォームに設置しています。 友達の環境で動かないと報告を受けたので、プログラムを簡略化して private void Form1_Load(object sender, EventArgs e) { this.webBrowser1.Navigate("https://www.google.co.jp/"); } これだけにして試してもらいましたが、真っ白で何も表示されないと報告を受けました。 その友達のPCではIE10がインストールされています。また.NETFrameworkは4.0でした。 別の二人の友達の環境では正常に動いたようです。(こちらは、環境の詳細を聞いていません。) 特にエラーが出るわけでもなく、真っ白で何も表示されないという事で困っています。 何を疑って調べればいいのかが、まず分かりません。 以上、宜しくお願い致します。

  • WebBrowser コントロールでフレームを操作したり...

    お世話になります。 以下のWebBrowserコントロールの使用法について、ご教授をお願いしますm(_ _)m ■ハイパーリンクがクリックされた場合や、JavaScript等によるページの移動が行われる際に、ページを表示せずに .LocationURL を使ってリンク先を知る方法について ■フレームページの場合に、フレームのHTMLのURLが値が返されてしまい、フレーム内に表示されているページを取得する方法について ■表示しているHTMLの、フレームを指定してページを移動する方法について(WebBrowserコントロールによって、フレームを操作する方法について) 以上、1つでも構いませんので、知識をお持ちの方はご指導の程お願いしますm(_ _)m なお・・・ 開発環境は・・・ Visual Studio.NET(VB7/.NET Framework1.0)で開発しています。 ※.NET Framework 2.0環境は対応していません。ですので、.NET Framework 2.0等の命令は使えないです;;

  • WebBrowserコントロールでのPrint機能に関して

    現在、Visual C++ 2008 Express Editionでホームページを印刷するアプリを作成中です。そこで、 WebBrowserコントロールを用いて、そこに表示したページを印刷したいのですが、  webBrowser->Print(); を行う前に、  printDocument1->PrinterSettings-> みたいな印刷設定ってできないのでしょうか? また、印刷終了のイベントはPrintDocumentにはEndPrintがあるようですが、これに相当するものはWebBrowserにもあるのでしょうか? よろしくお願いします。

  • ActiveX の WebBrowser コントロール上で、フォームのボタンを「クリックする」動作

    ActiveX の WebBrowser コントロール上で、フォームのボタンを「クリックする」動作をソフトで行いたいのですが、方法をご存知の方がおられましたらご教授いただけませんでしょうか。目的は Webからのフォーム入力を支援するソフトの作成です。 以下のようなケースを想定しています 1.Webからフォーム入りのページを WebBrowser コントロールで取得し 2.取得したドキュメント内の文字入力欄等にデフォルト値を差し込み 3.加工したドキュメントをWebBrowser コントロールに戻し 4.そのままフォームの送信ボタンを押された動作を行う ことにより、必要な情報を誤りなく入力できるようにするものです。 Navigate や Navigate2 で、直接フォーム入力を送信するのではなく、あくまで「クリックしたことにする」方法をとりたいと思っています。 なんとなく、セキュリティへの配慮からサポートされていないのかな?という気もしなくないですが、ご存知の方がおられましたら教えていただければと思います。 環境は IE5以降、VC++ (MFC)で作成しています。(VS6)

専門家に質問してみよう