📄 csdn_文档中心_定制ie 5_0.htm
字号:
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>出处</FONT></TD>
<TD height=10> <A
href="http://zzh-cn.com/">http://zzh-cn.com/</A></TD></TR>
<TR>
<TD align=middle height=10></TD>
<TD height=10></TD></TR></TBODY></TABLE><!--文章说明信息结束//-->
<TABLE border=0 width=600>
<TBODY>
<TR>
<TD align=left><BR>定制IE 5.0<BR><BR>Download the code
(13KB)<BR><BR>定制IE 5.0<BR><BR>Dino Esposito&nbsp;<BR>张中华
翻译讲解<BR>==============<BR>张某前言:金山词霸、网络蚂蚁这些软件是怎么在IE5.0里添加工具条按钮和右键菜单呢?读了Dino
Esposito的这篇文章,你就一清二楚了。你可以只看中文翻译讲解部分,如不能充分理解明白,请看对照的原文。<BR>本文原文在MSDN网站上有:<BR>Dino
Esposito, "Customizing Microsoft Internet Explorer 5.0", MIND,
1999年11月期<BR>在MSDN中的路径为:<BR>Periodicals ¦ Periodicals 1999 ¦
Microsoft Internet Developer ¦
November<BR>MSDN中,关于IE应用开发的更多信息位于:<BR>Platform SDK ¦ Web Services ¦
Workshop ¦ Reusing Browser
Technology<BR>由于这里不能放图片,建议看译者网站上的:<BR>http://zzh-cn.com<BR>==============<BR><BR>Nowadays,
writing a completely custom browser is not a difficult task—provided
you can rely on the WebBrowser control that's available starting
with Microsoft?Internet Explorer 3.0. The browser helper objects
(BHO) introduced with Internet Explorer 4.0 gave you an opportunity
to add even complex new functionality to the original browser. A
couple of working examples of BHOs can be found in Scott Roberts'
article in the May 1998 issue of MIND and in the January/February
1999 issue of
MSDN?News.<BR><BR>==============<BR>翻译讲解:有哪些技术、工具可用来定制IE浏览器呢?从IE3.0开始提供的WebBrowser
control,从IE4.0开始提供的Browser Helper Objects(BHOs),就是让开发人员用来定制IE的。Scott
Roberts和Dino Esposito写有BHOs相关的介绍文章:<BR>Scott Roberts, "Controlling
Internet Explorer 4.0 with Browser Helper Objects", MIND,
1998年5月期<BR>Dino Esposito, "Browser Helper Objects: The Browser the
Way You Want It", MSDN News, 1999年1/2月期<BR>==============<BR>There
is just one aspect missing from all these pre-Internet Explorer 5.0
programming goodies: you couldn't associate new functionality with
the browser's user interface. You had no way to add new toolbar
buttons or to customize any of the menus. Thankfully, this problem
has been solved with Internet Explorer
5.0.<BR>==============<BR>翻译讲解:但是这些IE5.0之前的技术有个缺点:就是你不能把功能和用户界面联系起来,即你不能往工具条上增加按钮,也不能往菜单里增加菜单项。谢天谢地,IE5.0解决了这些问题。<BR>==============<BR>Let's
look at the new ways you can interface with the Internet Explorer
UI, the points at which you're allowed to intervene, and what you
can actually obtain through code. I'll briefly review the highlights
of BHOs, focusing on scripting-related aspects of Internet Explorer
5.0 customization and registry changes. Windows Script Host (WSH)
will be my development environment of choice
here.<BR>==============<BR>翻译讲解:现在就让我们看看是怎么做的,本文使用的开发环境为Windows
Script Host(WSH)。<BR>==============<BR>Customizable Aspects of
Internet Explorer 5.0<BR>Figure 1 summarizes the aspects of Internet
Explorer 5.0 that can be considered customizable. In particular, you
can add new toolbar buttons and menu items. For each, you specify
the text and icons to add to the particular object, as well as the
code that you should run when the user selects the new entry. The
browser has a number of context menus that appear when you
right-click an image, a document, a table, an ActiveX?control,
selected text, and other items. You can add new items to any of the
context menus and have full control over the whole process that
displays the menu. In other words, you can detect when the context
menu is about to be shown and add your changes on the
fly.<BR>==============<BR>翻译讲解:Figure
1概括了IE5.0可定制的方面。最令人关注的就是可增加工具条按钮和菜单项。右键点击弹出的菜单叫context
menu,也可以往里面增加菜单项。<BR>==============<BR>Internet Explorer 5.0 comes
with a number of related applications that let you work outside the
Web, such as email or news readers, HTML editors, and so on. You can
modify the list of available applications to fit your needs. The
search bar can be enhanced and you can even use your own search
panel.<BR>==============<BR>翻译讲解:和IE5.0相关的程序还有电子邮件和新闻阅读器(OutlookExpress),网页编辑器(FrontPage)等。在Internet选项对话框中程序那一栏里,有个列表列出可供选择的程序,你可以把你喜爱的程序(Foxmail,
Dreamweaver)加入列表中。<BR>==============<BR>Technologies like Dynamic
HTML (DHTML), behaviors, and XML provide excellent tools for
customizing and extending browser features. You can create a browser
implementing the IDocHostUIHandler interface, and expose a
completely custom object model through that interface's External
property (see "Take Total Control of Internet Explorer with Advanced
Hosting Interfaces," by Scott Roberts in the October 1998 issue of
MIND). You can use behaviors to customize the way a certain HTML tag
reacts to user and browser solicitations by extending it with new
methods, properties, and
events.<BR>==============<BR>翻译讲解:用来定制或扩展浏览器的技术有动态HTML(DHTML),
behaviors, XML等。例如,通过实现一个IDocHostUIHandler 接口可以创建一个浏览器,参见:<BR>Scott
Roberts, "Take Total Control of Internet Explorer with Advanced
Hosting Interfaces", MIND,
1998年10月期<BR>==============<BR>Customization
Techniques<BR>Customization of the Internet Explorer 5.0 user
interface involves four elements: COM components, HTML, script
files, and the registry. By writing a special COM component or
script file and entering some keys and values to the registry, you
can personalize the Internet Explorer interface. As I mentioned
earlier, I won't discuss the COM stuff in depth here, but I will
give you an overview of the COM component you can write to interact
with Internet Explorer
5.0.<BR>==============<BR>翻译讲解:定制IE5.0涉及4种元素:COM组件,HTML,Script文件,注册表。往注册表里添加一些Keys和Values,写一个特定的COM组件或Script文件,就可以定制IE的界面了。<BR>==============<BR>There
are basically four types of Internet Explorer-specific COM objects:
BHOs, BHOs with custom commands, command-only objects, and the
Explorer deskband.<BR>==============<BR>翻译讲解:基本上,与IE相关的COM
object有4种类型:BHOs,带定制命令的BHOs,command-only objects,Explorer
deskband。<BR>==============<BR>A BHO is a simple COM server that is
only required to implement the IObjectWithSite interface. You can
create a BHO with ATL by choosing the Internet Explorer object
template from the ATL objects gallery. BHOs are also supported by
Windows Explorer (if you're running shell version 4.71 or greater)
and Internet Explorer 4.0. BHOs don't necessarily link with the UI;
they are just actions you take when starting the browser. BHOs are
passed a pointer to the browser's IUnknown
interface.<BR>==============<BR>翻译讲解:一个BHO是一个简单的COM
server,只需实现IObjectWithSite接口即可。可以用ATL创建一个BHO,从ATL objects
gallery中选择Internet Explorer object template。Windows
Explorer和IE4.0也支持BHOs。BHOs并不和UI相连,它只是在浏览器启动时起作用。BHOs会接收到一个指向浏览器IUnknown接口的指针。<BR>==============<BR>You
can add new commands to the browser by writing BHOs, or even simpler
COM objects, that implement IOleCommandTarget. With this interface,
Internet Explorer 5.0 knows how to ask your component to execute a
function. Such a component needs to be associated with a menu item
or a toolbar button. The difference between a BHO and a COM server
implementing IOleCommandTarget is that a BHO can easily access (via
the received IUnknown pointer) any object model exposed by the
document being
viewed.<BR>==============<BR>翻译讲解:如果要往浏览器里加入命令,那么写BHOs,或更简单的COM
object时,要实现IOleCommandTarget接口。IE5.0通过这个接口和你的组件交互并执行某项功能。这种组件需要和一个菜单项或一个工具条按钮联系起来。这种实现IOleCommandTarget接口的COM
server和前面介绍的实现IObjectWithSite接口的BHOs的区别是:实现IObjectWithSite接口的BHO可以很容易地访问正被浏览的文档中的object
model(这是因为上面说到过的,它会接收到一个指向浏览器IUnknown接口的指针)。<BR>==============<BR>An
Explorer deskband is a docking window that you can employ as the
left pane of your browser. By default, the deskband is a window
within Explorer that shows the shell's namespace. Other predefined
deskbands allow you to see the Search, History, and Favorites
panels. Usually, the available deskbands are listed under the View ¦
Explorer Bar menu both for Windows Explorer and Internet Explorer
(see Figure 2).<BR>==============<BR>翻译讲解:Explorer
deskband是一个浮动窗口,你可以用来作为你的浏览器的左窗格。缺省情况下,deskband显示shell的名字空间(目录树)。其它预定义的deskband用来显示搜索,历史记录,收藏夹等。通常地,这些可用的deskband在Windows
Explorer和IE的查看 ¦ 浏览栏菜单中罗列出来,见Figure
2。<BR>==============<BR><BR>Figure 2: Available Deskbands<BR>Writing
a custom deskband is neither painfully difficult nor particularly
easy. A few examples can be found in the latest Platform
SDK.<BR>==============<BR>翻译讲解:写一个定制的deskband不难(对高手而言),也不易(对初哥而言),在最新的Platform
SDK中可以找到一些例子。<BR>==============<BR>Adding a New Toolbar Button<BR>To
add a new button to the Internet Explorer 5.0 toolbar, you just
write some new entries to the system registry. You define the icons
to be used, the text to be shown, and what happens when someone
clicks the button. A toolbar button always has a corresponding menu
item, which is automatically added at the bottom of the Tools menu.
The Windows Scripting Host (WSH) script shown in Figure 3
demonstrates how to create a new button called Run Script. The final
effect is shown in Figure
4.<BR>==============<BR>翻译讲解:要往IE5.0的工具条上加按钮,你只要往注册表里加些条目即可。内容包括使用什么图标,显示什么文字,点击按钮时该做什么等。每个工具条按钮总有相应的菜单项,它会被自动加到工具菜单的底部。Figure
3 的WSH Script举例演示了如何添加一个名为Run Script的新按钮,Figure
4显示了最终结果。<BR>==============<BR><BR>Figure 4: The New Run Script
Toolbar Button<BR>There are two categories of information to be
added for a new button: configuration and behavior. Figure 5 shows
the entries that describe the button. All the entries mentioned here
are strings (type REG_SZ). Notice that if Default Visible is set to
No, the button won't appear on the toolbar, although it will still
be available through the toolbar's Customize dialog. If the user has
already customized the toolbar, the button will not appear on the
toolbar automatically no matter the value of Default
Visible.<BR>==============<BR>翻译讲解:用什么定义一个新按钮呢?有两种信息:configuration和behavior。Figure
5 显示了描述一个按钮所需的条目。这里提到的所有条目都是字符串(REG_SZ类型)。要注意,如果Default
Visible设为No,那么该按钮不会出现在工具条上,虽然它在工具条的定制对话框中仍然可以看到。如果用户早就定制过了工具条,那么无论Default
Visible的值是什么,按钮都不会自动出现在工具条上。<BR>==============<BR>The Clsid entry
can take two possible GUIDs as values:
{E0DD6CAB-2D10-11D2-8F1A-0000F87ABD16}
<BR>and<BR>{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}<BR>Use the first
GUID if you're attaching a deskband to the button, otherwise use the
second one.<BR>These entries must all be written to the following
root key:<BR><BR>HKEY_LOCAL_MACHINE<BR> \Software<BR>
\Microsoft<BR> \Internet
Explorer<BR> \Extensions<BR><BR>Under
this path, however, you have to create a new key with a unique GUID.
You can use GuidGen.exe to generate a new one. Incidentally, this is
exactly what I did to come up with the GUID in Figure 3. Notice that
as long as you use the HKEY_LOCAL_MACHINE root node, the button will
be visible to all users on the specified machine. If you want it to
apply only to certain users, enter the registry changes under the
HKEY_CURRENT_USER node
instead.<BR>==============<BR>翻译讲解:Clsid条目的值是一个GUIDs,有两种选择可能:<BR>{E0DD6CAB-2D10-11D2-8F1A-0000F87ABD16}
和
{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}如果你想把一个deskband连接到按钮上,使用第一个GUID,否则用第二个(多数情况)。<BR>这些条目放在注册表里的什么地方呢?其根Key为:
HKEY_LOCAL_MACHINE<BR> \Software<BR>
\Microsoft<BR> \Internet Explorer<BR>
\Extensions<BR>在此路径下,创建一个新Key,其名字应为一个唯一的GUID。你可以用GuidGen.exe程序来产生这个GUID,作者就是这样得到Figure
3<BR>中的GUID 的。注意,当你在HKEY_LOCAL_MACHINE
根节点下增加这些条目时,这台机器上的所有用户都能看到这个按钮。如果你只想让某些特定的人看到,改放到HKEY_CURRENT_USER根节点下。<BR>==============<BR>These
changes are sufficient to make a new button appear on the Internet
Explorer toolbar. The icons must include two formats each: 16X16 (16
colors) and 20X20 (256 colors). You can create these icons with the
integrated resource editor of Visual Studio? To give the button an
associated behavior, you have three options: running an executable,
running a script or an HTML page, or invoking a command defined in
some COM component implementing the IOleCommandTarget interface.
Let's take a look at what you have to add to the registry in each
case.<BR>==============<BR>翻译讲解:为了让新按钮出现在工具条上,注册表做这些改动就可以了。要求图标的格式有两种:16X16
(16色) and 20X20 (256 色)。你可以用Visual Studio内集成的resource
editor创建这些图标。给该按钮赋予相关的behavior,你有3种选择:运行一个可执行文件,打开一个script或HTML页面,或者引发一条命令,该命令定义在某些实现了IOleCommandTarget接口的COM组件中。让我们看看在每种情况下,注册表里要添加些什么。<BR>==============<BR>To
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -