2009-04-24 102 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中。下面是我所採取的步驟:進口我C:\test.htm到默認的文件app.rc資源文件

  1. 創建於2005年VS一個新的Visual C++類庫項目名爲'IETest'c:\IETest
  2. 。我已經改變了IDTEST
  3. 編譯
  4. 改變了註冊表項,在調試模式下DLL閱讀
res://C:\IETest\debug\IETest.dll/TEST 

如果我現在重新啓動IE瀏覽器,然後再試一次,消息當我右鍵單擊並選擇我的新的上下文菜單項時,框不會出現。我也嘗試了DLL的發佈版,沒有任何運氣,並試圖用逗號代替最後一個正斜槓,並將雙反斜槓的路徑更改爲雙斜槓。

我只能假設我在創建我的DLL時做了一些錯誤。任何人都可以將我指向正確的方向嗎?有什麼辦法可以檢查編譯的DLL來檢查資源和關聯的ID嗎?

謝謝。

+0

當你說「提醒」你真的是「上下文菜單項」? – Eddie 2009-04-24 16:35:57

+0

如果我在第一個示例中使用JavaScript,當選擇我的新的上下文菜單項時,會出現'alert'消息框。我遇到的問題是當我嘗試將這個JavaScript添加到一個新的DLL。 我將更新條目以使版權清晰一些。 – 2009-04-24 18:45:39

回答

2

您是否嘗試讓ID爲TEST.html?我的猜測是,IE不知道如何處理該文件,因爲它沒有列出擴展名,但這完全是基於某些MS .dlls識別它們的事實(即res:// c: \ windows \ system32 \ shdoclc.dll/navcancl.htm)

我唯一能想到的其他事情就是確保您的資源是23型。

ResourceHacker可以看到像你這樣的資源文件需要:http://angusj.com/resourcehacker/

相關問題