IE里的探索之定制浏览器好助手(上1)

IE里的探索之定制浏览器好助手
(作者:青苹果工作室编译 2001年02月08日 14:00)
  有些情况下你需要特制的、或多或少有些改变的浏览器。这种情况下,你有时候会基于 WebBrowser 控件开发一个完全定制的模块,实现按钮、标题以及用户界面需要的其它东西。这时,你可以自由地在这个浏览器中添加任何新的、非标准的功能。WebBrowser 控件只是浏览器的语法分析引擎。这就是说还有很多用户界面相关的任务必须由你完成:添加地址栏、工具条、历史、状态栏、频道和收藏夹等等。所以,要创建定制的浏览器,你必须编写两种代码:将 WebBrowser 控件变成类似于 Microsoft Internet Explorer 的全功能浏览器的代码和支持你的新功能的代码。如果有一种定制 Internet Explorer 的直接方式不是很好吗?浏览器助手对象 (BHO) 就是做这件事用的。
程序定制
  历史上,定制程序行为的第一种方法是子类。通过这种方法,你能改变程序中给定的窗口处理消息的方式以获得不同的行为。这是一种原始的实现方式,然而因为受害者很少意识到,在很长一段时间内这是唯一的选择。
  Microsoft Win32 API 出现时,不鼓励使用进程间的子类,而且它们的代码比较难写。然而,如果你有一颗勇敢的心,指针从来就吓不倒你;毕竟,你生活在系统挂钩的环境里,你也许会发现它其实很简单。但不总是这种情况。不管是多么聪明的编程,有一个问题就是每一个 Win32 进程运行在它自己的地址空间内,而有时打破这种进程的边界是不正确的。另一方面,这要求你倾尽全力完成这种编程。更为常见的是,定制可能是指程序本身在设计时就确定的指定功能。
  后来,程序在众所周知的、预先指定的磁盘空间寻找附加模块,加载、初始化它们,然后让它们完成预先设计的工作。这就是 Internet Explorer 和它的助手对象的实际工作方式。
浏览器助手对象(BHO)是什么
  从这个角度来看,Internet Explorer 就和任何其它使用自己内存空间的 Win32 程序一样。你能使用浏览器助手对象编写组件——进程内的组件对象模型 (COM) 组件——Internet Explorer 在每次启动时加载这些组件。这些组件和浏览器运行在相同的内存上下文里并且能在可用的窗口和模块里完成任何操作。例如,一个 BHO 能检测到浏览器的典型事件,如 GoBack、GoForward 和 DocumentComplete;访问浏览器的菜单和工具条并改变它们;创建窗口以显示当前可视页面上的附加信息;安装挂钩以监视消息和操作。简单地说,BHO 就像我们派出的潜入浏览器的间谍一样工作。

时间: 2024-08-01 21:11:15

IE里的探索之定制浏览器好助手(上1)的相关文章

IE里的探索之定制浏览器好助手(中1)

IE里的探索之定制浏览器好助手(中)(作者:青苹果工作室编译 2001年02月08日 14:00)检测调用者 像前面提到的,如果你运行的外壳版本不低于471,BHO 就既能被Internet Explorer又能被Windows Explorer引用.在这个例子里,我们要是涉及一个专对 HTML 页面起作用的助手对象,所以它应该对 Windows Explorer 不起任何作用.一个不想被特定的调用者加载的 DLL 可以在它发现谁是调用者后,简单地在它的 DllMain() 函数中返回 Fals

IE里的探索之定制浏览器好助手(上2)

IObjectWithSite 接口 从这个高层来看待浏览器助手对象,一个概念就清晰的显现出来了:BHO 是一个动态连接库 (DLL),它能附着在 Internet Explorer 的一个新实例上,在某些情况下,也能附着在 Windows Explorer 的实例上.这样的模块能通过容器的现场与浏览器建立联系. 通常,现场是指处于容器和每个被包含的对象之间的中介对象.容器通过它管理包含的对象,并随后使对象的内置功能可用.这种容器和对象之间的基于现场的关系涉及到在容器一端实现像 IOleClie

IE里的探索之添加浏览器栏

IE里的探索之添加浏览器栏(作者:青苹果工作室编译 2001年02月08日 13:28) 本文解释如何在 Microsoft Internet Explorer 中添加浏览器栏.如果你想向 Internet Explorer 的"工具"菜单中添加菜单项,首先应该熟悉注册表,还应该熟悉 band 对象.有关 band 对象的详细内容,可以参阅 SDK 中关于 Windows Shell API 的文档. 这里讨论的实现方式对 Internet Explorer 5 以上版本有效.关于如何

IE里的探索(想定制自己的IE的可以看一看)

IE里的探索(作者:青苹果工作室编译 2001年02月08日 14:06) Microsoft公司的Internet Explorer已经成为我们机器中必备的工具,只要一打开计算机,只要一上网,怎么会不双击那熟悉的E图标?但是我们对它的了解也许只停留在冰山一角的程度,我们希望添加.定制特殊的功能,以实现更加实用.更加强大的功能.本文就将全面介绍关于IE的高级定制功能,让我们更加充分地发挥其作用! 本文包括如下各节: 浏览器概览 向标准上下文相关菜单里添加条目 添加浏览器栏 添加工具条按钮 创建具

IE里的探索之浏览器概览

IE里的探索之浏览器概览(作者:青苹果工作室编译 2001年02月08日 13:28) 本节解释Microsoft Internet Explorer 4.0及更高版本的体系结构并提供使用它的组件时用到的信息,包括以下内容:* 体系结构概览:* 选择正确的组件:* 提供附加控制:* 控制上下文相关菜单:* 扩展动态 HTML 对象模型:* 控制下载:* 安全管理.体系结构概览 Internet Explorer 使用 Microsoft ActiveX 控件和 Active Document 接

IE里的探索之添加工具条按钮(1)

IE里的探索之添加工具条按钮(作者:青苹果工作室编译 2001年02月08日 13:28) 本文解释如何在 Microsoft Internet Explorer 的用户界面上添加工具条按钮.工具条按钮可以运行 Win32 应用程序.运行脚本或打开浏览器栏.注意:默认情况下,自定义工具条按钮不出现在 Internet Explorer 的工具条上.这些按钮将出现在"定制工具条"对话框的左侧. 如果你想向 Internet Explorer 中添加工具条按钮,就应该熟悉注册表和全局唯一标

在应用程序里识别UserAgent对应的浏览器

ASP.Net有很好的机制来识别用户的浏览器: 用Request.Browser就可以拿到一个 HttpBrowserCapabilities,然后用相应的属性可以取到值,比较浏览器类型,屏幕大小,JS支持等等. 对于移动设备更可以这么用,很容易拿到需要的属性(当然ASP.Net自带的浏览器库还是很不全). 但是怎样在WinApp里根据UserAgent识别浏览器呢?我通过Reflector看到主要是在 BrowserCapabilitiesFactory这个类中对浏览器的Capability进

IE里的探索之向标准上下文相关菜单里添加条目

IE里的探索之向标准上下文相关菜单里添加条目(作者:青苹果工作室编译 2001年02月08日 13:28) 本文描述在Microsoft Internet Explorer中执行URL指定的脚本时,如何向它的标准上下文相关菜单中添加菜单项. 如果你想向 Internet Explorer 的标准上下文相关菜单中添加菜单项,那么你应该熟悉注册表以及上下文相关菜单.有关上下文相关菜单的详细内容,可以参阅 SDK 中关于 Windows Shell API 的文档. 这里讨论的实现方式对 Intern

android源码探索之定制android关机界面的方法_Android

本文实例讲述了android源码探索之定制android关机界面的方法.分享给大家供大家参考.具体如下: 在Android系统中,长按Power键默认会弹出对话框让你选择"飞行模式","静音","关机"等功能.如下图所示: 但这些功能都对Android-x86和其他终端产品就没什么必要了.本文就简单介绍下如何定制关机界面. 我的目标是长按Power键,将会关机,弹出"设备将要关机"选择对话框.如果可以选择"是&quo