IE ToolbarをC#で作る
作成日: 2002/11/17  最終更新日: 2005/1/18



◆概要

ここでは,インターネットエクスプローラーのツールバー(IE Toolbar)を, BandObject というコンポーネントを用いてC#で実現する方法について説明します.
上記ページにも詳しい解説がありますが,英語かつ少し冗長ですので,実際に利用する手順などを簡単にまとめてあります.
BandObject自体の実装についても上記URLに記述されているので,適宜参照してください.

サンプルコード (zip)
 (別途,BandObjectのソースファイルをダウンロードし,ビルドしておく必要があります.)

図1: BandObjectを用いたIE Toolbarのサンプル




◆BandObjectの特徴
  • IE や Explorer, Task BarなどにToolBarを追加できる
  • 基本的にC#で簡単に記述可能
  • Webページの解説も分かりやすい



◆BandObjectのインストール
  • Webページからソースファイルをダウンロードし,解凍
  • BandObjectLibプロジェクトをビルド
  • BandObjectLib.dllをGAC(Global Assembly Cache)に登録(ビルド時に自動で登録される模様) [以上]



◆ BandObjectを用いたサンプルプログラムの作り方
  • 新規プロジェクト→C#→Windowsコントロールライブラリを選択 (以下,クラス名はSampleBarとする.)
  • GUIDの生成
    • コマンドプロンプトからguidgen.exeを利用し,以下のようなGUIDを生成
      [Guid("AE07101B-46D4-4a98-AF68-0333EA26E113")]
  • AssemblyInfo.csの記述
    • strong name(厳密名)のキーファイルを設定
      [assembly: AssemblyKeyFile(@"..\..\..\BandObjects.snk")]
      • BandObjects.snkはソースファイルに添付してある.
      • コマンドラインからsn.exeを利用することでも生成可能
    • assemblyのバージョンを固定
      [assembly: AssemblyVersion("1.0.*")] を "1.0.0.0"などに変更する
  • SampleBar.csの記述
    • BandObjectの初期化
      [BandObject("SampleBar", BandObjectStyle.Horizontal | BandObjectStyle.ExplorerToolbar, HelpText = "Help for SampleBar")]
      • BandObjectStyle.TaskbarToolBar とすると,タスクバーに登録
    • 生成されたDLLをGACとレジストリに登録
      % cd $(ProjectDir)..\bin\Debug
      % gacutil /if SampleBar.dll
      % regasm SampleBar.dll
  • ExplorerやIEの再起動後,[表示→ツールバー]から自作ツールバーを呼び出せる [以上]
  • [補足]一度登録したToolbarを削除する方法
    • 以下のように,"/u"オプションを指定する.(gacutilコマンドとregasmコマンドについては後述)
      % gacutil /u SampleBar
      % regasm /u SampleBar.dll



◆補足: gacutilとregasmの基本的な使い方
  • gacutil.exeの使い方
    • DLLをGACに追加
      % gacutil /i SampleBar.dll
    • アセンブリをGACから削除
      % gacutil /u SampleBar (全てのバージョンを削除)
      % gacutil /u SampleBar,Version=1.0.0.1,Culture="de",PublicKeyToken=45e343aae32233ca
    • GACの中身をリスト
      % gacutil /l
  • regasm.exeの機能と使い方
    • アセンブリに含まれるメタデータを読み込み、必要な情報をレジストリに追加することで,アセンブリ内クラスのインスタンスをCOMから作成できるようにする
    • アセンブリをレジストリに登録
      % regasm SampleBar.dll
    • アセンブリをレジストリから削除
      % regasm /unregister SampleBar
      % regasm /u
    • 独立したレジストリファイルを作成
      % regasm SampleBar.dll /regfile:SampleBar.reg



◆参考URL


[俄プログラマー心得]