42653


Internet Explorer 11のツールバー（コマンドバー）にボタンを追加して独自のプログラムを実行したいです。  
ショートカットキーの割り当ても行いたいです。  
アドオンを作成をすればよいのでしょうか？  
BHO ( Browser Helper Object ) を使ったサンプルソースは見たのですが、コマンドバーにボタンを追加する方法が分かりません。


CC BY-SA 3.0
2018-03-22T14:06:11.170
42587
2018-03-26T03:57:50.977
3925
question
c# internet-explorer
Internet Explorer のツールバーにボタンを追加するには


IEツールバーを作成する場合、大きな要素として表示中のWebページ情報にアクセスするBHOと、ツールバー実装のためのIDeskBand(とIObjectWithSite、ショートカットキーを実装するならIInputObjectも)というインターフェイスを実装する必要があります。

COMの知識が前提になりますが、この辺りのインターフェイスについて検索していけば既存のサンプルや実装など様々な情報が見つかると思います。  
...が、C#(.NET)を利用してIEツールバーを実装した場合、うっかりするとIEではなくExplorerのDeskBandにまでAttachされてしまったり、メモリリークやIEにロードされる.NET
Frameworkのバージョン競合等、非常に厄介で嫌らしい世界が待ち受けています。

社内ツールのように非常に限定された適用範囲での実装であれば、「C#で作ってみたIEツールバー」もアリかもしれませんが、一般向けに公開する目的でIEツールバーを作成する場合、C++とATL/WTLを使用しごりごりのWin32実装とすることを強くお勧めします。Win32のDLLであれば、最低限の実装要素のみに限定し、DllMainでロード/非ロードのジャッジなども確実にできます。


CC BY-SA 3.0
2018-03-26T03:57:50.977
42653
2018-03-26T03:57:50.977
2947
42587
answer