ie里的探索之添加浏览器栏
(作者:青苹果工作室编译 2001年02月08日 13:28)
本文解释如何在 microsoft internet explorer 中添加浏览器栏。如果你想向 internet explorer 的“工具”菜单中添加菜单项,首先应该熟悉注册表,还应该熟悉 band 对象。有关 band 对象的详细内容,可以参阅 sdk 中关于 windows shell api 的文档。
这里讨论的实现方式对 internet explorer 5 以上版本有效。关于如何在 internet explorer 4.0 里实现浏览器栏,参见 sdk 中关于 band 对象的文档。
实现步骤
按以下步骤在 internet explorer 中添加浏览器栏:
通过以“路径,resource_id”格式所指定的资源的路径和引用标志,我们可以引用保存在资源中的图标和字符串。例如,如果你想引用 example.dll 中的字符串资源123,可以使用 "example.dll, 123"。
注意:本文描述了如何为所有用户添加浏览器栏。如果你希望为单个用户添加浏览器栏,可以把下列步骤中的 hkey_local_machine 换成 hkey_current_user。
1. 创建全局唯一标识符 (guid)。
2. 在注册表中的以下位置:
hkey_classes_root\clsid\
以 guid 为键名创建一个新键,结果类似于:
hkey_classes_root\clsid\<your guid>
<your guid>就是你在第一步里创建的合法 guid。
默认的键值应该是在“查看”菜单中想要设置的浏览器栏的名字。
3. 在以下位置:
hkey_classes_root\clsid\<your guid>
创建新键,implemented categories。结果类似于:
hkey_classes_root\clsid\<your guid>\implemented categories
4. 以你的浏览器栏类型的 catid 为键名创建新键。catid 可以是以下值之一:
| catid | 描述 |
| {00021494-0000-0000-c000-000000000046} | 水平浏览器栏 |
| {00021493-0000-0000-c000-000000000046} | 垂直浏览器栏 |
结果类似于:
//水平浏览器栏
hkey_classes_root\clsid\<your guid>\implemented categories\{00021494-0000-0000-c000-000000000046}
//垂直浏览器栏
hkey_classes_root\clsid\<your guid>\implemented categories\{00021493-0000-0000-c000-000000000046}
5. 在以下位置:
hkey_classes_root\clsid\<your guid>
创建新键,inprocserver32,结果类似于:
hkey_classes_root\clsid\<your guid>\inprocserver32
对 html 页面,将键值设置为 shdocvw.dll 的全路径名。对浏览器栏,键值设置为它的 .dll 文件。
6. 在以下位置:
hkey_classes_root\clsid\<your guid>\inprocserver32
创建新键,threadingmodel,结果类似于:
hkey_classes_root\clsid\<your guid>\inprocserver32\threadingmodel
threadingmodel 的键值设置为 "apartment"。
7. 在以下位置:
hkey_classes_root\clsid\<your guid>
创建新键,instance,结果类似于:
hkey_classes_root\clsid\<your guid>\instance
8. 对显示 html 页面的浏览器栏本步是必须的,对其它浏览器栏本步是可选的。在以下位置:
hkey_classes_root\clsid\<your guid>\instance\
创建新键,clsid,结果类似于:
hkey_classes_root\clsid\<your guid>\instance\clsid
clsid 的键值设置为:{4d5c8c2a-d075-11d0-b416-00c04fb90376}。
9. 在以下位置:
hkey_classes_root\clsid\<your guid>\instance
创建新键,initpropertybag,结果类似于:
hkey_classes_root\clsid\<your guid>\instance\initpropertybag
10. 对显示 html 页面的浏览器栏本步是必须的,对其它浏览器栏本步是可选的。在以下位置:
hkey_classes_root\clsid\<your guid>\instance\initpropertybag
创建新键,url,结果类似于:
hkey_classes_root\clsid\<your guid>\instance\initpropertybag\url
url 的键值设置为包含浏览器栏内容的 html 文件的位置。
11. 删除以下注册表项:
hkey_classes_root\component categories\{00021493-0000-0000-c000-000000000046}\enum
hkey_classes_root\component categories\{00021494-0000-0000-c000-000000000046}\enum
12. 可选。在以下位置:
hkey_local_machine\software\microsoft\internet explorer\explorer bars
以你在第一步里创建的 guid 为键名创建新键,结果类似于:
hkey_local_machine\software\microsoft\internet explorer\explorer bars\<your guid>
13. 可选。在以下位置:
hkey_local_machine\software\microsoft\internet explorer\explorer bars\<your guid>
创建新键,barsize,结果类似于:
hkey_local_machine\software\microsoft\internet explorer\explorer bars\<your guid>\barsize
barsize 设置为 8 字节的二进制值,以十六进制设置浏览器栏的默认尺寸。它的单位为点,例如,键值 "97 00 00 00 00 00 00 00" 设置浏览器栏的默认尺寸是 151 点。
