.NET TIPS Firefoxの描画エンジン(Geckoエンジン)でWebページを表示するには?[C#、VB]デジタルアドバンテージ 一色 政彦2007/10/18 |
![]() |
|
. 「TIPS:WindowsアプリケーションでWebページを表示するには?」では、Windowsフォーム上にWebブラウザ・コントロールを配置する方法を紹介している。Webブラウザ・コントロールとは、Webページを表示するためのコントロールで、このTIPSでは、WebBrowserコントロール(System.Windows.Forms名前空間)という.NET Framework 2.0に含まれるWindowsフォーム・コントロールを利用している。
このWebBrowserコントロールは、(その内部で)Webページの描画にIE(=Internet Explorer)のレンダリング・エンジンを利用する。だが、最近では世界全体でFirefoxが約15%までブラウザ・シェアを伸ばしてきており(参考:「Market Share : Browser Market Share for September, 2007」)、レンダリング・エンジンにもFirefoxと同等のもの(=「Geckoエンジン」と呼ばれる)を使いたいというニーズも少なくないだろう(例えば、国内で人気の高いカスタム・ブラウザ「Sleipnir」にもGeckoレンダリングのモードがある)。
そこで、本稿ではFirefoxで使われているGeckoエンジンによるレンダリングが行えるWebブラウザ・コントロールの利用方法を紹介する。
GeckoエンジンのWebブラウザ・コントロールを利用するには?
実はFirefoxで使われているGeckoエンジンはFirefox本体と静的にコンパイルされているため、そのまま外部から利用することができない。Firefoxのソース・コードからGeckoエンジンを抜き出すことも不可能ではないと思うが、現実的に考えてそれではあまりにも手間が掛かりすぎる。それでは、もっと手軽にGeckoエンジンを利用する方法はないのか?
Geckoエンジンはさまざまなプロジェクトで活用されている。例えば、Firefoxだけでなく、Netscape(Webブラウザ)やThunderbird(メール・クライアント)、SeaMonkey(インターネット統合アプリケーション*1)、XULRunner(XULアプリケーションのランタイム・パッケージ*2)などだ。これらのうち、SeaMonkeyやXULRunnerではGeckoエンジンのActiveXコントロール版が同梱されているので、このActiveXコントロールを利用するという方法がある。
*1 このインターネット統合アプリケーションには、タブ方式のWebブラウザ、メール・クライアント、WYSIWYG形式のHTML編集ツールなどが含まれている。 |
*2 XULは「XMLユーザー・インターフェイス言語」を意味し、Mozillaによりデスクトップ・アプリケーション開発のために提供されている。XULRunnerは、Geckoエンジンを利用するランタイム環境のため、「(新)GRE(=Gecko Runtime Environment)」とも呼ばれる(ちなみ、新GREに対して「Mozilla Application Suite」の一部が「旧GRE」と呼ばれている)。 |
つまり、例えばXULRunnerをクライアント環境にインストールすれば、そのActiveXコントロールを利用してGeckoエンジンによるWebページ・レンダリングが実現できるというわけだ。以下では、この方法について説明する。
●XULRunnerのインストール
まずは最新のXULRunnerをインストールしよう。これには、次のFTPサイトに行き、
「xulrunner-*.***.en-US.win32.zip」(本稿執筆時点では「xulrunner-1.9a9pre.en-US.win32.zip」)をダウンロードして、.zipファイルに格納されている「xulrunner」フォルダを、任意の場所(本稿の例では「D:\xulrunner」)に展開する。
この中に含まれる「mozctlx.dll」が、GeckoエンジンのWebブラウザ・コントロール(ActiveX版)である。よって、このActiveXコントロールを「regsvr32.exe」*3を使ってレジストリに登録する。これには、コマンド・プロンプトを立ち上げ(これには例えば[スタート]メニューから[ファイル名を指定して実行]を表示して「cmd」を入力して実行する)、本稿の例では次のようなコマンドを入力すればよい。
|
|
Geckoエンジン・コントロール(ActiveX版)をシステムに登録するコマンド |
*3 regsvr32はWindowsに付属するコンソール・プログラムで、ActiveXなどのCOMコンポーネントをシステムに登録する際に使う。コマンドライン引数にCOMコンポーネント(.DLLファイル)へのパスを指定すれば登録される。なお、登録を解除するには、「/u」オプションを付加して呼び出せばよい。 |
以上でXULRunnerのインストールは完了だ。
●Visual StudioでのActiveXコントロールの活用
ActiveXコントロールがインストールできたら、後は通常のActiveXコントロールを利用するのと同じ手順だ。一応、念のため、その手順を画面で示しておくとしよう。
なお、以下ではVisual Studio 2005を利用している。また、以降では、ActiveXコントロールの「GeckoエンジンWebブラウザ・コントロール」は「AxMozillaBrowser」と表記。
上記の画面の手順でWindowsフォーム上に配置するところまでできた。後は、AxMozillaBrowserコントロールのNavigateメソッドを呼び出せば、そのブラウザ・コントロール内に好きなURLのWebページを表示できる。メソッドの第1パラメータにURLを指定する。例えば、フォームのLoadイベント・ハンドラで@IT/Insider.NETのトップ・ページを表示するには、次のようなコードになる。
|
||
AxMozillaBrowserコントロールでWebページを開くコードの例(上:C#、下:VB) |
これを実行すると、次の画面のようになる。
![]() |
AxMozillaBrowserコントロールの実行例 |
この例では、@IT/Insider.NETのトップ・ページがGeckoレンダリングによって表示されている。
カテゴリ:Windowsフォーム 処理対象:WebBrowserコントロール 使用ライブラリ:WebBrowserコントロール(System.Windows.Forms名前空間) 関連TIPS:WindowsアプリケーションでWebページを表示するには? |
|
![]() |
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
![]() |
|
|
|
![]() |