windows的注册表有什么用?
10#Windows注册表的那些事儿
一、了解注册表
1.1 注册表的用途
注册表实质是一个庞大的数据库。里面存放了计算机硬件的全部配置信息、系统和应用软件的初始化信息等。
1.2 注册表的打开方式
win+R 打开运行,执行regedit
或rededt32
均可打开注册表。
或按下win键,直接搜索注册表。
1.3 官方文档
适用于高级用户的 Windows 注册表信息
Microsoft 使用注册表清理实用程序的支持策略
二、注册表的结构
2.1 注册表编辑器的外观
2.2 注册表的五大主键
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_USERS
- HKEY_CURRENT_CONFIG
2.3 各主键的作用
主键 | 说明 |
---|---|
HKEY_CURRENT_USER | 包含当前登录的用户的配置信息的根。 用户的文件夹、屏幕颜色和 "控制面板" 设置存储在此处。 此信息与用户的配置文件相关联。 此密钥有时缩写为 HKCU。 |
HKEY_USERS | 包含计算机上所有主动加载的用户配置文件。 HKEY_CURRENT_USER 是 HKEY_USERS 的子项。 HKEY_USERS 有时缩写为 HKU。 |
HKEY_LOCAL_MACHINE | 包含特定于计算机 (任何用户) 的配置信息。 此密钥有时缩写为 HKLM。 |
HKEY_CLASSES_ROOT | 子项 HKEY_LOCAL_MACHINESoftware 。 存储在此处的信息可确保在使用 Windows 资源管理器打开文件时,会打开正确的程序。 此注册表项有时缩写为 HKCR。 从 Windows 2000 开始,此信息存储在 "HKEY_LOCAL_MACHINE" 和 "HKEY_CURRENT_USER" 键下。 此 HKEY_LOCAL_MACHINESoftwareClasses 项包含可应用于本地计算机上的所有用户的默认设置。 此 HKEY_CURRENT_USERSoftwareClasses 项包含的设置可替代默认设置,并且仅适用于交互式用户。 HKEY_CLASSES_ROOT 键提供了将来自这两个源的信息合并在一起的注册表视图。 HKEY_CLASSES_ROOT 还为为早期版本的 Windows 设计的程序提供此合并视图。 若要更改交互式用户的设置,必须在 HKEY_CURRENT_USERSoftwareClasses HKEY_CLASSES_ROOT (而不是在下进行更改)。 若要更改默认设置,必须在下进行更改 HKEY_LOCAL_MACHINESoftwareClasses 。 如果您将键写入 HKEY_CLASSES_ROOT 下的某个项,系统会将该信息存储在下 HKEY_LOCAL_MACHINESoftwareClasses 。 如果您将值写入 HKEY_CLASSES_ROOT 下的某个键,并且该注册表项已存在 HKEY_CURRENT_USERSoftwareClasses ,则系统将在其中存储信息,而不是在下存储 HKEY_LOCAL_MACHINESoftwareClasses 。 |
HKEY_CURRENT_CONFIG | 包含有关本地计算机在系统启动时使用的硬件配置文件的信息。 |
2.4 键值说明
名称 | 数据类型 | 说明 |
---|---|---|
二进制值 | REG_BINARY | 原始二进制数据。 大多数硬件组件信息都存储为二进制数据,并以十六进制格式显示在注册表编辑器中。 |
DWORD 值 | REG_DWORD | 由4个字节长 (32 位整数) 的数字所表示的数据。 许多设备驱动程序和服务参数是此类型,以二进制、十六进制或十进制格式显示在注册表编辑器中。 相关值是 DWORD_LITTLE_ENDIAN (最低有效字节是最低的地址) ,REG_DWORD_BIG_ENDIAN (最小有效字节是最高地址) 。 |
可扩展的字符串值 | REG_EXPAND_SZ | 可变长度的数据字符串。 此数据类型包括在程序或服务使用数据时解析的变量。 |
多字符串值 | REG_MULTI_SZ | 一个多字符串。 包含用户可以读取的表单中的列表或多个值的值通常是此类型。 项由空格、逗号或其他标记分隔开。 |
字符串值 | REG_SZ | 固定长度的文本字符串。 |
二进制值 | REG_RESOURCE_LIST | 一系列嵌套的数组,用于存储硬件设备驱动程序或它控制的某个物理设备使用的资源列表。 此数据由系统在 ResourceMap 树中进行检测和写入,并在注册表编辑器中以十六进制格式显示为二进制值。 |
二进制值 | REG_RESOURCE_REQUIREMENTS_LIST | 一系列嵌套的数组,用于存储驱动程序或它控制的某个物理设备可以使用的设备驱动程序的可能的硬件资源的列表。 系统在 ResourceMap 树中写入此列表的子集。 此数据由系统检测并以十六进制格式显示在注册表编辑器中,作为二进制值。 |
二进制值 | REG_FULL_RESOURCE_DESCRIPTOR | 一系列嵌套的数组,用于存储由物理硬件设备使用的资源列表。 此数据由系统在 HardwareDescription 树中进行检测和写入,并在注册表编辑器中以十六进制格式显示为二进制值。 |
无 | REG_NONE | 没有任何特定类型的数据。 此数据由系统或应用程序写入注册表,并作为二进制值以十六进制格式显示在注册表编辑器中。 |
链接 | REG_LINK | 一个用于命名符号链接的 Unicode 字符串。 |
QWORD 值 | REG_QWORD | 由64位整数的数字表示的数据。 此数据以二进制值的形式显示在注册表编辑器中,并在 Windows 2000 中引入。 |