如何在IE8工具栏上注册自定义工具

摘要:在IE8的工具栏上注册自定义工具的方法主要有两种:一种是通过gpedit.msc中提供的UI工具来配置生成;另一种是通过手工修改注册表来实现。在本博文中,小鑫将先介绍UI的方法,然后通过讲解IE8管理自定义工具的原理来介绍如何通过手工或编程方式修改注册表的方法。

正文:

        首先在Windows 的运行窗口中打开gpedit.msc(只有Windows Xp professional+的操作系统中才有该工具),  image        然后在本地组策略编辑器窗口中依次找到并打开结点“本地计算机 策略”\用户配置\Windows设置\Internet Explorer维护\浏览器用户界面,

image      接着选中“浏览器用户界面”节点,并在右侧窗口中找到项“浏览器工具栏自定义”,双击该项打开“工具栏自定义”对话框

image 

      在该对话框中点击“添加”按钮,在弹出的“浏览器工具栏按钮信息”对话框中填入自定义工具路径、图标、工具标题等信息,最后点击自定义工具则添加成功。

image

    此时,打开IE,在IE工具栏上还无法看到该工具。所以,接着将鼠标移至IE工具栏上,点击右键,在弹出的右键菜单中找到“添加或删除命令”菜单项,

image

    然后点击该菜单项,在弹出的“自定义工具栏”对话框中找到刚刚我们在gpedit.msc中添加的自定义工具,然后双击该项或选中该项点击“添加”按钮即可。

image

    此时我们会发现该工具按钮已经显示在IE工具栏上了!

 

image

 

     本来IE添加自定义工具介绍到这里应该是可以结束了,但是呢,对于像小鑫一样的开发人员来说却并不能满足,小鑫做事中喜欢求究竟。那么下面小鑫就简单介绍下在IE8工具栏上添加自定义工具的原理。

     IE8工具栏上的自定义工具是IE8在启动时通过读取注册表中HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions下的子项的相关配置信息后初始化生成的。该子项以GUID命名,且其最后两位必须为数字或小于G的字母,否则自定义工具无法初始化。而自定义工具的其他详细信息则以该子项的键值的形式存储在注册表中,其键名、取值和说明见下表:

键名

类型

取值

备注

Default Visible

DWORD

Yes或No

该工具在IE8中是否默认可见

ButtonText

DWORD

 

该工具显示的名称

CLSID

DWORD

{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}

恒为该guid值

Icon

DWORD

 

图标路径

HotIcon

DWORD

 

在IE8工具栏上当鼠标指向该工具时该工具显示的图标路径

Exec

DWORD

 

点击该工具按钮后IE8调用的可执行文件路径

Script

DWORD

 

点击按钮时执行的脚本

,其与《如何在IE右键菜单中添加自定义项》中的脚本构建方式相同

ClsidExtension

DWORD

  点击按钮时IE调用的的COM组件。将在以后的博文中进行进一步介绍
       

下面是这些键值在注册表中的截图:

使用程序注册代码如下:

 

 

class CustomInstaller
{
static string guid = "{CABE2334-6D3F-425F-9A7B-B64CEF0AF241}";

public static void Install(string targetdir)
{
RegistryKey root
= Registry.CurrentUser;
RegistryKey ieExtentKey
= root.OpenSubKey(@"Software\Microsoft\Internet Explorer\Extensions",true);
RegistryKey cmdBarKey
= ieExtentKey.OpenSubKey(guid);
if (cmdBarKey == null)
cmdBarKey
= ieExtentKey.CreateSubKey(guid);
cmdBarKey.SetValue(
"Default Visible", "Yes");
cmdBarKey.SetValue(
"ButtonText", "导入搜狗浏览器收藏夹");
cmdBarKey.SetValue(
"CLSID", "{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}");
cmdBarKey.SetValue(
"Icon", targetdir+"\\sg.ico");
cmdBarKey.SetValue(
"HotIcon", targetdir + "\\sg.ico");
cmdBarKey.SetValue(
"IeakPolicy", "");
cmdBarKey.SetValue(
"Exec", targetdir + "\\SouGouExplorer2IE8.exe");
cmdBarKey.Close();
}

public static void UnInstall()
{
RegistryKey root
= Registry.CurrentUser;
RegistryKey ieExtentKey
= root.OpenSubKey(@"Software\Microsoft\Internet Explorer\Extensions",true);
RegistryKey cmdBarKey
= ieExtentKey.OpenSubKey(guid);
if (cmdBarKey != null)
ieExtentKey.DeleteSubKeyTree(guid);
}
}

 

 

 

 

 

    介绍到这里相信大家都应该觉得能够满意了吧,小鑫也可以睡个安稳觉了,哈哈,晚安啰!

posted @ 2010-04-18 01:25  乐水鱼  阅读(1644)  评论(0编辑  收藏  举报