2009-04-24 13 views
3

Internet Explorerの右クリックコンテキストメニューに新しいエントリを追加しようとしています。 JavaScriptを含むHTMLファイルを作成し、レジストリ内の場所からリンクすることで、これを実現できると私は理解しています。また、HTMLをリソースファイルに追加してDLLにコンパイルすることもできます(Microsoft KB:Adding Entries to the Standard Context Menuを参照)。これが私が問題にぶつかり始めたところです。Internet Explorerの右クリックコンテキストメニューにアイテムを追加する

ここまで私がこれまで行ってきたことについての背景が少しあります。私はファイルC:\test.htmで次のJavaScriptを持って

<script type="text/javascript"> 
    alert('Hello, world!'); 
</script> 
  • 私は、次の場所でレジストリに新しいREG_SZ価値'c:\test.htm'を追加しました:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt 

IEを再起動すると、新しいメニュー項目がコンテキストメニューに表示されます。新しいメニュー項目を選択すると、メッセージボックスの警告が期待通りに表示されます。ここまでは順調ですね。しかし、DLLに入っていればスクリプトにアクセスできないようです。 'IETest'という名前VS 2005で新しいVisual C++クラスライブラリプロジェクト作成し

  1. c:\IETestのデフォルトapp.rcリソースファイルに私C:\test.htmファイルをインポート:ここで私が行った手順です。私は、私は今、IEを再起動して、もう一度お試し場合
res://C:\IETest\debug\IETest.dll/TEST 

を読むためのレジストリエントリを変更したIDTEST

  • は、デバッグモードでDLLをコンパイルするメッセージを
  • を変更しました右クリックして新しいコンテキストメニュー項目を選択すると、ボックスは表示されません。私はまた、運のないDLLのリリースビルドを試みました。最後のスラッシュをカンマで置き換え、パスのシングルバックスラッシュをダブルスラッシュに変更してみました。

    私はDLLを作成するときに間違ったことをしたとしか推測できません。誰かが私を正しい方向に向けることができますか?コンパイルされたDLLを調べてリソースと関連IDを調べる方法はありますか?

    ありがとうございました。

  • +0

    あなたはあなたが本当に「コンテキストメニュー項目」を意味しています「警告」と言うとき? – Eddie

    +0

    最初の例でjavascriptを使用すると、正しい新しいコンテキストメニュー項目を選択すると「警告」メッセージボックスが表示されます。私が抱えている問題は、このDLLを新しいDLLに追加しようとするときです。 私は、見本を少し鮮明にするためにエントリーを更新します。 –

    答えて

    2

    IDをTEST.htmlにしてみましたか?私の推測では、IEはファイルを扱う方法を知らないというのは、拡張子がリストされていないためですが、これは特定のMS .dllがそれらをどのように識別しているかという事実に基づいて推測されます(つまりres:// c: \ windows \ system32 \ shdoclc.dll/navcancl.htm)

    私が考えることができる唯一のものは、リソースが23型であることを確認することです。あなたが望むように

    ResourceHackerは、リソースファイルを表示することができます。http://angusj.com/resourcehacker/

    +0

    ありがとうBarrettJ。 ResourceHackerはこの問題を解決しました。 htmlリソースの実際のIDは101です。次のようにレジストリエントリが変更され、正常に動作します。 res:// C:\ IETest \ debug \ IETest.dll/101 As私が見る限り、VS 2005または2008でこの値を表示または設定する方法はありません。 –

    関連する問題