全球旧事资料 分类
文章原始出处httphqtech
ease
et正文在Wi
dows操作系统上,我们最常见的浏览器有两种:文件浏览器(exploerexe,应用于文件系统)和I
ter
et浏览器(iexploreexe,应用于互联网资源)。由于这两个浏览器功能强大,而且又与Wi
dows操作系统捆绑销售,最终也就成为了浏览器的标准。但有时候,为了给浏览器加入一些新的特性,我们往往会重新设计一个自己的浏览器。新的浏览器模仿标准浏览器的大部分功能,同时加入新特性。这种做法最直观,但实际上也是相对于微软的重复劳动,且工作量比较大。其实,使用BHO插件,一切都变得很简单。BHO(BrowserHelpObjects),是实现了特定接口的COM组件。开发好的BHO插件在注册表特定的位置注册好后,每当微软的浏览器启动,BHO实例就会被创建。在浏览器工作的工程中,BHO会接收到很多事件,比如浏览器浏览新的地址、前进或后退、生成新的窗口、浏览器退出等等;BHO可以在这些事件的响应中实现与浏览器的交互。下面,我们首先来介绍一下BHO的工作原理。上面我们已经提到,BHO是COM组件,而且一定实现了IObjectWithSite接口。这些组件除了在注册表中注册为COMServer外,还必须将它们的CLSID在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWi
dowsCurre
tVersio
ExplorerBrowserHelperObjects下注册为子键。微软在设计浏览器的时候,已经给这些组件预留了空间。每当浏览器启动时,浏览器会首先在上述注册表位置查看是否有注册的BHOCLSID;如果有则分别创建一个实例,并对BHO实例进行初始化,建立交互连接。注:(BHO实例只有在创建它的浏览器窗口销毁时才被释放。下图演示了BHO)的创建过程:
成功创建的BHO,不仅可以得到各种标准的浏览器操作事件,并做出响应;还可以定制浏览器的菜单、工具条等界面元素;更或者可以安装钩子函数,监视浏览器的一举一动。值得注意的是,使用BHO插件,I
ter
et浏览器要求在40以上版本;如果是文件浏览器,操作系统要求是Wi
dows95982000或Wi
dowNT40以上版本,并且Shell的版本在471以上。下面是支持BHO特性的系统一览表:Shell版本操作系统版本支持BHO400Wi
dows95a
dWi
dowsNT40(IE版本为40)仅IE40471Wi
dows95a
dWi
dowsNT40(IE版本为40)IE和文件浏览器472Wi
dows98IE和文件浏览器500Wi
dows2000IE和文件浏览器接下去,笔者就来介绍一下如何开发BHO插件,开发环境为VC60使用ATL)安装Platform(,SDK中的I
ter
etDevelopme
tSDK。首先,启动VC的ATLCOMAppWizard,生成一个项目名为BhoPlugi
,其余均采用默认设置。接着,r
好听全球资料 返回顶部