有关HKEY_CLASSES_ROOT注册表配置单元的详细信息
HKEY_CLASSES_ROOT通常缩写为HKCR ,是Windows注册表中的注册表配置单元 ,包含文件扩展名关联信息以及编程标识符(ProgID),类ID(CLSID)和接口ID(IID)数据。
尽可能以最简单的方式,HKEY_CLASSES_ROOT注册表配置单元包含Windows的必要信息,以便在您要求它执行某些操作时知道该执行什么操作,例如查看驱动器的内容或打开某种类型的文件等。
如何进入HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT是一个注册表配置单元,因此位于注册表编辑器的顶层:
- 打开注册表编辑器
- 在注册表编辑器的左侧找到HKEY_CLASSES_ROOT
- 双击或双击单词HKEY_CLASSES_ROOT以展开配置单元,或使用左侧的小箭头
如果以前在您的计算机上使用过注册表编辑器,则可能需要先折叠所有打开的注册表项,然后才能看到HKEY_CLASSES_ROOT配置单元。 这可以通过与打开相同的方式完成 - 通过双击/点击它们或通过选择箭头。
HKEY_CLASSES_ROOT中的注册表子项
HKEY_CLASSES_ROOT配置单元下的注册表项列表非常长,同样令人困惑。 我无法解释你可能会看到的数千个密钥中的每一个,但是我可以将它分解成一些可管理的部分,这将有望澄清注册表的这一部分。
以下是您可以在HKEY_CLASSES_ROOT配置单元下找到的许多文件扩展名关联密钥中的一部分,其中大部分将以一段时间开始:
- HKEY_CLASSES_ROOT \ .AVI
- HKEY_CLASSES_ROOT \ .BMP
- HKEY_CLASSES_ROOT \ .exe文件
- HKEY_CLASSES_ROOT \ html的
- HKEY_CLASSES_ROOT \ .PDF
- HKEY_CLASSES_ROOT \音频CD
- HKEY_CLASSES_ROOT \ dllfile
- ...
这些注册表键中的每一个都存储有关Windows双击或双击带有该扩展名的文件时应执行的操作的信息。 它可能包括右击/轻敲文件时在“打开方式”部分中找到的程序列表,以及列出的每个应用程序的路径。
例如,在我的电脑上,当我用draft.rtf的名称双击或双击文件时,写字板打开文件。 发生这种情况的注册表数据存储在HKEY_CLASSES_ROOT \ .rtf项中,该项在我的计算机上将写字板定义为应打开RTF文件的程序。
警告:由于如何设置HKEY_CLASSES_ROOT项的复杂性,我绝对不建议您更改注册表中的默认文件关联。 相反,请参阅如何在Windows中更改文件关联以获取有关在常规Windows界面中执行此操作的说明。
HKCR& CLSID,ProgID,& IID
HKEY_CLASSES_ROOT中的其余键是ProgID,CLSID和IID键。 以下是各自的一些示例:
ProgID键位于HKEY_CLASSES_ROOT的根目录 ,与上面讨论的文件扩展名关联一起:
- HKEY_CLASSES_ROOT \ FaxServer.FaxServer
- HKEY_CLASSES_ROOT \ JPEGFilter.CoJPEGFilter
- HKEY_CLASSES_ROOT \ WindowsMail.Envelope
- ...
所有CLSID键位于CLSID子项下:
- HKEY_CLASSES_ROOT \ CLSID \ {} 00000106-0000-0010-8000-00AA006D2EA4
- HKEY_CLASSES_ROOT \ CLSID \ {06C792F8-6212-4F39-BF70-E8C0AC965C23}
- HKEY_CLASSES_ROOT \ CLSID \ {FA10746C-9B63-4b6c-BC49-FC300EA5F256}
- ...
所有IID密钥都位于Interface子项下:
- HKEY_CLASSES_ROOT \接口\ {0000000D-0000-0000-C000-000000000046}
- HKEY_CLASSES_ROOT \接口\ {00000089-0000-0010-8000-00AA006D2EA4}
- HKEY_CLASSES_ROOT \接口\ {00000129-0000-0000-C000-000000000046}
- ...
ProgID,CLSID和IID键与计算机编程的一些非常技术性的方面有关,并且超出了本讨论的范围。 但是,您可以分别在这里和这里阅读更多关于这三个地方的信息。
备份HKEY_CLASSES_ROOT配置单元
毫无例外,您应该始终对您计划编辑或删除的任何注册表项进行备份。 如果您需要将HKEY_CLASSES_ROOT或注册表中的任何其他位置备份到REG文件 ,请参阅如何备份Windows注册表 。
如果出现问题,您可以随时通过备份将Windows注册表恢复到工作状态。 您只需双击或双击该REG文件并确认您想要进行这些更改。
更多关于HKEY_CLASSES_ROOT
尽管您可以编辑并完全删除HKEY_CLASSES_ROOT配置单元内的任何子项,但根文件夹本身(如注册表中的所有配置单元)不能被重命名或删除。
HKEY_CLASSES_ROOT是一个全局配置单元,这意味着它可以包含适用于计算机上所有用户的信息,并且可供所有用户查看。 这与一些蜂巢相反,蜂巢的信息仅适用于当前登录的用户。
但是,因为HKEY_CLASSES_ROOT配置单元实际上是在HKEY_LOCAL_MACHINE配置单元( HKEY_LOCAL_MACHINE \ Software \ Classes )和HKEY_CURRENT_USER配置单元( HKEY_CURRENT_USER \ Software \ Classes )中找到的组合数据,所以它也包含用户特定的信息。 即使是这样,HKEY_CLASSES_ROOT仍然可以被任何和所有用户浏览。
当然,这意味着当在HKEY_CLASSES_ROOT配置单元中创建一个新的注册表项时,HKEY_LOCAL_MACHINE \ Software \ Classes中将出现同一个注册表项,并且在从其中一个中删除一个时,同一个密钥将从其他位置中删除。
如果注册表项驻留在两个位置,但以某种方式冲突,则在登录用户的配置单元HKEY_CURRENT_USER \ Software \ Classes中找到的数据优先并在HKEY_CLASSES_ROOT中使用。