[IE][BHO] Internet Explorer Add-on (Browser Helper Object - BHO)をVisual Studio 2013でデバッグする方法
古のテクノロジーを再び目覚めさせなければならなくなった未来人へ……。
環境
- Windows 10 Professional (x64)
- Visual Studio 2013 Professional Update 5
- Internet Explorer 11 (x86)
やるべきこと
やるべきことを列挙します。
- Visual StudioをAdministrator権限で起動する(次でCOMを登録するため)
- プロジェクトのプロパティ>ビルド>Register for COM interopをチェックする
- IObjectWithSiteのSetSite内で、Debugger.Launch()する
以下詳細です。
Visual StudioをAdministrator権限で起動する
ビルドと同時にBHO COMを登録するために、Visual StudioをAdministrator権限で起動します。
手動で登録する場合は、一般ユーザ権限で問題ありません。
手動での登録にはregasmコマンドを使います。
regasm DLLファイル名 /codebase
プロジェクトのプロパティ>ビルド>Register for COM interopをチェックする
[PROJECT]-[プロジェクトのプロパティ]メニューを開きます。
[ビルド]タブを選択し、[Register for COM interop]をチェックします。
IObjectWithSiteのSetSite内で、Debugger.Launch()する
IEを起動したとき、Visual Studioのデバッガへ自動接続するようにします。
IObjectWithSiteインターフェースを実装するクラスの中で、以下のようにします。
public void SetSite(Object site)
{
# if DEBUG
System.Diagnostics.Debugger.Launch();
# endif
// some code
}
手動でやるときは、Visual Studioから[DEBUG]-[Attach to Process…]メニューを開いて、IEを選択します。
デバッグ時の手順
- IEが起動していたら終了する
- Visual Studioでビルドする
- IEを起動する
- デバッガの選択画面が表示されるので、使用しているVisual Studioを選ぶ
落穂拾い
登録してしまったBHO COMは、以下のようにして登録解除できます。
regasm DLLファイル名 /unregister