我正在尝试在Internet Explorer的右键单击上下文菜单中添加一个新条目。我知道这可以通过创建包含JavaScript的HTML文件,然后从注册表中的某个位置链接到此文件来实现。我还读到您还可以将HTML添加到资源文件并将其编译为DLL(请参阅Microsoft KB:Adding Entries to the Standard Context Menu)。这是我开始遇到问题的地方。
以下是我到目前为止所做的一些背景知识。
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'
c:\IETest
的VS 2005中创建了一个新的Visual C ++类库项目
C:\test.htm
文件导入默认的app.rc
资源文件。我已将ID
更改为TEST
res://C:\IETest\debug\IETest.dll/TEST
如果我现在重新启动IE并再试一次,当我右键单击并选择我的新上下文菜单条目时,不会出现消息框。我也尝试了没有任何运气的DLL的发布版本,并尝试用逗号替换最后的正斜杠并将路径单反斜杠改为双斜线。
我只能假设在创建DLL时我做错了。谁能指出我正确的方向?有什么办法可以检查编译的DLL来检查资源和相关的ID吗?
感谢。
答案 0 :(得分:2)
您是否尝试过将ID设为TEST.html?我的猜测是IE不知道如何处理该文件,因为它没有列出扩展名,但这完全是基于某些MS .dll识别它们的事实的猜测(即res:// c: \ Windows \ System32下\ SHDOCLC.DLL / navcancl.htm)
我唯一能想到的就是确保你的资源是23型。
ResourceHacker可以查看您想要的资源文件:http://angusj.com/resourcehacker/