VB做IE插件1 BHO
2008-11-30 13:40
162 查看
用VB做IE插件(BHO)
BHO(浏览器辅助对象)用于IE的加载项中,可以对IE的事件进行拦截编程(可以是IE上的工具条,或者按钮或者不可见插件).BHO的定义位于注册表"HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Browser Helper Objects/" 下,当IE启动时就加载了该项下所有子项.通过IObjectWithSite接口同前面的工具条扩展一样可以用来获得浏览器的接口,而IDispatch接口,则被用来监听浏览器的事件。
首先需要获得IObjectWithSite接口的定义,你下载个tl_ole.zip,包含了接口定义,下载下来以后,把它应用
然后创建一个ActiveX DLL工程,名称为MyBho 在工程中引用这个tlb文件,
并且引用Microsoft HTML Object Library(MSHTML.DLL)和mcrosoft Internet Controls(Shdocvw.dll)。
Implements IObjectWithSiteTLB.IObjectWithSite
Dim WithEvents m_ie As InternetExplorer '浏览器对象
Attribute m_ie.VB_VarHelpID = -1
Dim m_Site As IUnknownVB 'COM 接口
Private Sub IObjectWithSite_GetSite(ByVal priid As IObjectWithSiteTLB.GUIDPtr, ppvObj As IObjectWithSiteTLB.VOIDPtr)
m_Site.QueryInterface priid, ppvObj
End Sub
Private Sub IObjectWithSite_SetSite(ByVal pSite As IObjectWithSiteTLB.IUnknownVB)
Set m_Site = pSite
Set m_ie = pSite '获取到对象以后可以做自己想做的一切
End Sub
将这个工程编译为:MyBho.dll。
编译工程后,可以通过调用regsvr32 MyBho.dll注册这个组件,这个地方如果这个组件在系统目录下的话就不用带路径,否则的话要带路径,如e://MyBho.dll
组件注册了以后,就会在注册表HKEY_CLASSES_ROOT/CLSID中注册组件的GUID。
在注册表中用prjBHO.dll做关键字就可以查找到MyBho.dll注册的GUID,然后将这个GUID拷贝下来,然后在注册表HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Browser Helper Objects下创建一个新项,项的名称就是这个GUID
Private Sub m_ie_DocumentComplete(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
MsgBox CSTR(URL)
End Sub
BHO(浏览器辅助对象)用于IE的加载项中,可以对IE的事件进行拦截编程(可以是IE上的工具条,或者按钮或者不可见插件).BHO的定义位于注册表"HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Browser Helper Objects/" 下,当IE启动时就加载了该项下所有子项.通过IObjectWithSite接口同前面的工具条扩展一样可以用来获得浏览器的接口,而IDispatch接口,则被用来监听浏览器的事件。
首先需要获得IObjectWithSite接口的定义,你下载个tl_ole.zip,包含了接口定义,下载下来以后,把它应用
然后创建一个ActiveX DLL工程,名称为MyBho 在工程中引用这个tlb文件,
并且引用Microsoft HTML Object Library(MSHTML.DLL)和mcrosoft Internet Controls(Shdocvw.dll)。
Implements IObjectWithSiteTLB.IObjectWithSite
Dim WithEvents m_ie As InternetExplorer '浏览器对象
Attribute m_ie.VB_VarHelpID = -1
Dim m_Site As IUnknownVB 'COM 接口
Private Sub IObjectWithSite_GetSite(ByVal priid As IObjectWithSiteTLB.GUIDPtr, ppvObj As IObjectWithSiteTLB.VOIDPtr)
m_Site.QueryInterface priid, ppvObj
End Sub
Private Sub IObjectWithSite_SetSite(ByVal pSite As IObjectWithSiteTLB.IUnknownVB)
Set m_Site = pSite
Set m_ie = pSite '获取到对象以后可以做自己想做的一切
End Sub
将这个工程编译为:MyBho.dll。
编译工程后,可以通过调用regsvr32 MyBho.dll注册这个组件,这个地方如果这个组件在系统目录下的话就不用带路径,否则的话要带路径,如e://MyBho.dll
组件注册了以后,就会在注册表HKEY_CLASSES_ROOT/CLSID中注册组件的GUID。
在注册表中用prjBHO.dll做关键字就可以查找到MyBho.dll注册的GUID,然后将这个GUID拷贝下来,然后在注册表HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Browser Helper Objects下创建一个新项,项的名称就是这个GUID
Private Sub m_ie_DocumentComplete(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
MsgBox CSTR(URL)
End Sub
相关文章推荐
- C#为IE编写BHO插件心得
- IE插件技术 BHO C# IE 插件
- c# IE插件 Browser Helper Object (BHO)
- IE插件BHO
- IE插件技术 BHO C# IE 插件
- 用VS2005开发BHO揭开IE插件的神秘面纱
- IE插件技术 BHO C# IE 插件
- VB开发BHO插件的方法
- Bho编定ie插件
- IE插件BHO开发
- 关于ie浏览器的插件IEDevToolBar 和DebugBar安装问题
- 海康大华ie插件开发
- VC++开发BHO插件(引用)
- Google推出IE版Chrome Frame插件
- 在VB中如何使IE窗口最大化
- 使用ie的菜单接口编写自己浏览器插件
- 完美兼容各版本IE的JQuery时间插件
- VB中调用IE和WORD
- 用Visual Studio 2005 开发VB.NET-C#语言转换插件
- 在新的IE窗口中打开Url(VB.net)