BHO と C# を使用して Internet Explorer アドオンを開発しました。いくつかのコンテキスト メニュー アクション (アドオンを使用している IE 用) も追加しました。HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ の下のレジストリ エントリを使用して、コンテキスト メニュー エントリを追加しました。エントリを注文する方法はありますか? または区切りを追加しますか?またはネストされたメニュー?現時点では、すべてアルファベット順に並べられています。どうもありがとう!
1 に答える
私が知る限り、いいえ、この一見単純なタスクを達成するための良い方法はまだありません。
将来の読者のために、コンテキスト メニュー項目を追加するために検討できる 2 つの方法 (そのうちの 1 つは OP で言及されています) があります。
登録方法
残念ながら、レジストリ メソッドを使用して Internet Explorer で「リッチ」メニューを作成する方法はありません。シンプルな「コンテキスト」フィルタリングが利用可能ですが、それ以上のものはありません。リンクで説明されているこの方法を要約するには、まず次の場所に新しいサブキーを追加します。
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\<Menu Text>
<MenuText>
Internet Explorer のコンテキスト メニューに表示されるテキストです。&
アクセラレータ キーの使用は期待どおりに機能します。
実行するスクリプトファイル(Default)
のパスに値を設定します。これは、Javsascript、VB Script などです。BHO を作成する場合は、DLL/EXE と一緒にパッケージ化することをお勧めします。を使用してアクセスします。たとえば、私のシステムには、次の値で名前が付けられたエントリがあります。res://
E&xport to Microsoft Excel
res://C:\PROGRA~2\MICROS~1\Office12\EXCEL.EXE/3000
IDocHostUIHandler メソッド
この方法は、IE のコンテキスト メニュー全体を、BHO がプログラムで生成したコンテキスト メニューに効果的に置き換えます。非常に柔軟ですが、推奨されません。複数の BHO がこれを試みると、悲惨な結果になる可能性があります。CodeProject のポップアップ ブロッカー チュートリアルでこの方法の実際の例を見つけましたが、前述の理由から自分で試したことはありません。
参考文献:
私は、これらのコンポーネントの多くを含むプロジェクトに積極的に取り組んでいます。簡単な解決策が見つかった場合は、この投稿を更新し続けるようにします。
- http://answers.google.com/answers/threadview/id/17781.html
- http://blogs.msdn.com/b/nicd/archive/2007/04/18/calling-into-your-bho-from-a-client-script.aspx
- http://1code.codeplex.com/releases/view/62253#DownloadId=215004
- http://social.msdn.microsoft.com/Forums/en/ieextensiondevelopment/thread/1dc29a00-12e9-45ff-a281-d72553dc79ad