日期:2008-08-06  浏览次数:21049 次

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\Ex