AxWebBrowser(IEコンポーネント)の利用

いわゆるIEコンポーネント(WebBrowserコントロール)を使用すると、アプリケーションに簡単にWebブラウザを組み込むことができます。.NET Framework自体にはIEコンポーネントのクラスはない(2.0からは用意される模様)のですが、ActiveXコントロールをWindowsフォームコントロールにラップするAximp.exeを使うと、「.NET Frameworkで利用できるIEコンポーネント(AxWebBrowser)クラス」を作成できるようです。
VisualStudioを使うとGUIでWebBrowserの参照設定ができますが、今回はSDK(コマンドライン)でAxWebBrowserを作成し、使ってみることにしました。

AxWebBrowserクラスの生成と利用

AxWebBrowserクラスを利用するには、まずAximpコマンドでWebBrowserを含むshdocvw.dllからSHDocVw.dllとAxSHDocVw.dllを作成します。

aximp shdocvw.dllのパス

これで、dllが生成されますので、同じディレクトリにAxWebBrowserを使ったソースファイルを配置しましょう。

テストソースwebtest.cs

using System;
using System.Drawing;
using System.Windows.Forms;

public class webtest:Form {

	private AxSHDocVw.AxWebBrowser m_wbTest;

	public webtest() {

		Size = new Size(780, 540);

		// WebBrowserコンポーネント生成
		m_wbTest = new AxSHDocVw.AxWebBrowser();

		m_wbTest.Size = new Size(720, 480);
		m_wbTest.Left = 0;
		m_wbTest.Top = 0;

		m_wbTest.BeginInit();

		Controls.Add(m_wbTest);

		m_wbTest.EndInit();

		object objFlg = new object();
		object objFrm = new object();
		object objDat = new object();
		object objHed = new object();

		String stUrl = "http://www.sm.rim.or.jp/~shishido/";

		// サイトへ移動
		m_wbTest.Navigate(stUrl, ref objFlg, ref objFrm, ref objDat, ref objHed);

	}

	[STAThread]
	public static void Main() {

		webtest app = new webtest();

		Application.Run(app);

	}

}

ビルドするときには、コンパイラ(csc.exe)の/rスイッチでdllを参照します。

csc /r:AxSHDocVw.dll webtest.cs

これで、実行ファイルwebtest.exeができたはずですので、実行してみましょう。


プログラミング資料庫 > Windowsプログラミング研究室