BHO 浏览器辅助对象初步 - .NET 环境下开发BHO
2009-07-21 16:35
351 查看
BHO就是Browser Helper Object(浏览器辅助对象),很多IE里的插件比如迅雷就是源于此方式工作的.
BHO工作原理 (BHO关联的是SHDOCVW组件,也就是说不只关联IE,还关联以IE为内核的浏览器或者第三方程序,下面全部用IE来说明)
IE的窗口打开时,先寻找HKLM下的SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\ 里的CLSID,这些CLSID,都对应着相应的BHO插件,然后根据这个CLSID到HKCR下的CLSIDs里找到此插件的信息,包括文件位置等。
IE根据找到的CLSID信息创建 BHO 对象,并且查找 IObjectWithSite 接口. (这个接口非常简单,只有SetSite和GetSite两个方法)
IE把IWebBrowser2(浏览器插件)传到 BHO 的 SetSite 方法,用户在此方法中可挂载自己的事件处理方法。
窗口关闭时,IE把 null 传到 BHO 的 SetSite 方法,此方法用来去掉挂载的事件处理方法。
编写BHO流程
创建IObjectWithSite显式接口,创建 COM 类型,实现继承IObjectWithSite接口
实现此接口并在SetSite方法里加上所要挂载的事件
处理事件
注册此BHO到注册表中HKLM下的Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects;(HKCR下的CLSIDs是根据上面的路径自动注册的)
.net 下须设置此BHO项目的 配置属性_>生成 中为Interop注册为True,这样才能将.net 类库文件注册到COM
(注:IE只是基于SHDOCVW组件的一个程序,编程是可以直接使用SHDOCVW,具体为引用Microsoft Internet Controls (SHDocVw))
示例源码如下 http://files.cnblogs.com/lubing/UrlFilter.zip
--------------------------------------------------------
本文从 http://www.cnblogs.com/joybing 搬过来, 原博打算不更新了。
BHO工作原理 (BHO关联的是SHDOCVW组件,也就是说不只关联IE,还关联以IE为内核的浏览器或者第三方程序,下面全部用IE来说明)
IE的窗口打开时,先寻找HKLM下的SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\ 里的CLSID,这些CLSID,都对应着相应的BHO插件,然后根据这个CLSID到HKCR下的CLSIDs里找到此插件的信息,包括文件位置等。
IE根据找到的CLSID信息创建 BHO 对象,并且查找 IObjectWithSite 接口. (这个接口非常简单,只有SetSite和GetSite两个方法)
IE把IWebBrowser2(浏览器插件)传到 BHO 的 SetSite 方法,用户在此方法中可挂载自己的事件处理方法。
窗口关闭时,IE把 null 传到 BHO 的 SetSite 方法,此方法用来去掉挂载的事件处理方法。
编写BHO流程
创建IObjectWithSite显式接口,创建 COM 类型,实现继承IObjectWithSite接口
实现此接口并在SetSite方法里加上所要挂载的事件
处理事件
注册此BHO到注册表中HKLM下的Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects;(HKCR下的CLSIDs是根据上面的路径自动注册的)
.net 下须设置此BHO项目的 配置属性_>生成 中为Interop注册为True,这样才能将.net 类库文件注册到COM
(注:IE只是基于SHDOCVW组件的一个程序,编程是可以直接使用SHDOCVW,具体为引用Microsoft Internet Controls (SHDocVw))
示例源码如下 http://files.cnblogs.com/lubing/UrlFilter.zip
--------------------------------------------------------
本文从 http://www.cnblogs.com/joybing 搬过来, 原博打算不更新了。
相关文章推荐
- 浅谈用vb写bho(浏览器辅助对象)
- BHO 浏览器辅助对象
- [Ray Linn]用Visual Studio 2008开发IE BHO(浏览器帮助对象) 之三
- BHO(Browser Helper Object,浏览器辅助对象,简称BHO)
- 用Visual Studio 2008开发IE BHO(浏览器帮助对象)
- 用Visual Studio 2008开发IE BHO(浏览器帮助对象) 之二
- [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境【转】
- [Ray Linn]用Visual Studio 2008开发IE BHO (浏览器帮助对象)之一
- 用Visual Studio 2008开发IE BHO (浏览器帮助对象)之一
- 用Visual Studio 2008开发IE BHO (浏览器帮助对象)之一
- [.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)
- BHO 浏览器辅助对象
- [.net 面向对象程序设计深入](9).NET Core 跨平台开发环境搭建
- [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境
- 用Visual Studio 2008开发IE BHO (浏览器帮助对象)之一
- 使用浏览器辅助对象(BHO)来屏蔽特定网站
- 用Visual Studio 2008开发IE BHO(浏览器帮助对象) 之三
- BHO 浏览器辅助对象
- 在.NET开发环境中新建页面时,弹出“Automation 服务器不能创建对象”
- BHO浏览器辅助对象