合并的HKEY_CLASSES_ROOT视图

RegOpenUserClassesRoot 函数为处理交互式用户以外的客户端的进程(如服务)提供合并视图。 在这种情况下, HKEY_CLASSES_ROOT 项提供注册表视图,该视图将 HKEY_LOCAL_MACHINE\Software\Classes 的信息与 HKEY_CURRENT_USER\Software\Classes中的信息合并。

系统使用以下规则来合并来自两个源的信息:

  • 合并视图包括 HKEY_CURRENT_USER\Software\Classes 键的所有子项。
  • 合并视图包括 HKEY_LOCAL_MACHINE\Software\Classes 键的所有直接子项,这些子项不会与 HKEY_CURRENT_USER\Software\Classes子项重复。
  • 本主题末尾是HKEY_LOCAL_MACHINE\Software\ClassesHKEY_CURRENT_USER\Software\Classes 中找到的子项列表。 仅当这些项不是HKEY_CURRENT_USER树中直接子项的重复项时,HKEY_LOCAL_MACHINE树中的直接子项才会包含在合并视图中。 合并的视图不包括重复子项的 HKEY_LOCAL_MACHINE 内容。

如果使用管理员权限运行应用程序并且禁用了用户帐户控制,则 COM 运行时将忽略每用户 COM 配置,并仅访问每台计算机 COM 配置。 需要管理员权限的应用程序应在安装到每台计算机 COM 配置存储期间注册依赖 COM 对象, (HKEY_LOCAL_MACHINE\Software\Classes) 。 有关详细信息,请参阅 AC:UAC: COM Per-User配置

Windows Server 2003 和 Windows XP/2000: 应用程序可以将依赖 COM 对象注册到每计算机或每用户 COM 配置存储 (HKEY_LOCAL_MACHINE\Software\ClassesHKEY_CURRENT_USER\Software\Classes) 。

以下示例显示了HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER项下的一组子项,以及生成的HKEY_CLASSES_ROOT合并视图

HKEY_LOCAL_MACHINE\SOFTWARE\ClassesCLSID24inprocserver32localserver327

HKEY_CURRENT_USER\Software\ClassesCLSID14localserver610localserver

HKEY_CLASSES_ROOTCLSID124inprocserver32localserverlocalserver326710localserver

以下子项在 HKEY_LOCAL_MACHINE\Software\ClassesHKEY_CURRENT_USER\Software\Classes中找到。 从 HKEY_LOCAL_MACHINE 树中,仅当这些键的直接子项不是 HKEY_CURRENT_USER 树中的直接子项的重复项时,这些键的直接子项才会包含在合并视图中。 合并的视图不包括重复子项的 HKEY_LOCAL_MACHINE 内容。

*
*\shellex
*\shellex\ContextMenuHandlers
*\shellex\PropertySheetHandlers
AppID
Clsid
组件类别
驱动
Drive\shellex
Drive\shellex\ContextMenuHandlers
Drive\shellex\PropertySheetHandlers
FileType
文件夹
Folder\shellex
Folder\shellex\ColumnHandler
Folder\shellex\ContextMenuHandlers
Folder\shellex\ExtShellFolderViews
Folder\shellex\PropertySheetHandlers
Installer\Components
Installer\Features
Installer\Products
Interface
Mime
Mime\Database
Mime\Database\Charset
Mime\Database\Codepage
Mime\Database\Content Type
Typelib