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

来源:岁月联盟 编辑:zhuzhu 时间:2003-07-11
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 点。