描述:
我想在IE中添加一个快捷图标(就像金山词霸那样),并且在IE的menu context的环境中加入一个菜单(即在IE中按下鼠标右键弹出我加入的菜单)。每当按下图标或菜单则会调用一个COM对象。我要如何比较快捷的获得该IE的IWebBrowser2了??COM控件我打算用ATL来写。
另外我在注册表中这样修改:HKEY_LOCAL_MACHINE\SOFTWARE\microsoft\internet explorer\extension\{my guid}中加入ClsidExtension值为COM对象的值。
加入hoticon和icon值应该就可以添加图标了。
菜单好像还要加入menustatusbar,menutext吧。
这样不知对否?还有其值的具体含义我也不清楚(通过看别的软件得知一点点)。那方面有这些资料吗?
解决方案1:
你错了,Flashget本身实现了BHO机制,当你单击一个链接的时候,他能够捕获这些链接。因为链接的文件类型支持ZIP、RAR、EXE、MSI等等。但是这些文件名无法通过BHO中的BeforeNavigator2得到。但是每一个http链接都会经过IInternetProtocol接口的Start方法。如果你的组件实现了这个接口的话,就会链接到更多的文件下载,不只网页文件。可以拦截到脚本、图片、flash等等。
flashget虽然是一个可执行文件,但是它还有一个Jccatch.dll文件,这个文件才是网际快车实现的核心。在IE启动后,你是没有办法删除这个文件的,这本身就说明,它随IE一块启动。实际上它向注册表写入了BHO的键码。
下面是它的注册键
HKLM
{
SOFTWARE
{
Microsoft
{
Windows
{
CurrentVersion
{
Explorer
{
'Browser Helper Objects'
{
{A5366673-E8CA-11D3-9CD9-0090271D075B}
}
}
}
}
}
}
}
怎么样才能修改IE的右键菜单?
您可以用在注册表中增加键值来实现该功能。其注册表位置为:
HKEY_CURRENT_USER
Software
Microsoft
Internet Explorer
MenuExt
关于这个问题的详细信息,您可以参见以下文章:
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/ext/tutorials/context.asp
http://support.microsoft.com/support/kb/articles/q177/2/41.asp
get_AddressBar
Retrieves a Boolean value that indicates whether the Internet Explorer object's address bar is visible.
get_Application
Retrieves the automation interface supported by the Microsoft® Internet Explorer application
ButtonText--图标下面的文字
Icon--默认图标
HotIcon--鼠标Focus时的图标
MenuText--填了这个,菜单里的"工具"就会多处一条
MenuStatusBar--当你的MenuText被鼠标Focus时,IE的状态栏显示的提示文字