什么是注册表值?

不同类型的注册表值说明

Windows注册表中充满了称为的对象,其中包含Windows和应用程序引用的特定指令。

存在许多种注册表值,所有这些都在下面解释。 它们包括字符串值,二进制值,DWORD(32位)值,QWORD(64位)值,多字符串值和可扩展字符串值。

注册表值位于何处?

注册表值可以在Windows 10Windows 8Windows 7Windows VistaWindows XP中的整个注册表中找到。

注册表编辑器中,不仅是注册表值,还有注册表项注册表配置单元 。 这些对象中的每一个都像文件夹,并且在注册表编辑器的左侧出现。 然后,注册表值就像存储这些密钥和它们的“子密钥”中的文件一样。

选择一个子键将在注册表编辑器的右侧显示它的所有注册表值。 这是Windows注册表中唯一可以看到注册表值的地方 - 它们不会列在左侧。

以下是一些注册表位置的几个示例,注册表值以粗体显示:

在每个示例中,注册表值是最右边的条目。 再次,在注册表编辑器中,这些条目显示为右侧的文件。 每个值都保存在一个密钥中,并且每个密钥都始于注册表配置单元(上面最左侧的文件夹)。

这个确切的结构在整个Windows注册表中保持不变。

注册表值的类型

Windows注册表中有几种不同类型的注册表值,每种注册表值都是以不同的目的创建的。 某些注册表值使用常规字母和数字,易于阅读和理解,而其他注册表值使用二进制或十六进制表示。

字符串值

字符串值由一个带有字母“ab”的小红色图标表示。 这些是注册表中最常用的值,也是最易读的。 它们可以包含字母,数字和符号。

以下是一个字符串值的示例:

HKEY_CURRENT_USER \ Control Panel \ Keyboard \ KeyboardSpeed

当您在注册表中的此位置打开KeyboardSpeed值时,会给您一个整数,如31

在这个特定的例子中,字符串值定义了一个字符在键被按下时重复的速率。 如果要将值更改为0 ,则速度会比保持在31时慢得多。

Windows注册表中的每个字符串值都用于不同的目的,具体取决于它在注册表中的位置,并且每个字符串值在定义为不同的值时会执行特定的功能。

例如,位于Keyboard子键中的另一个字符串值是一个名为InitialKeyboardIndicators的字符串值。 而不是选择一个介于0和31之间的数字,该字符串值只接受0或2,其中0表示当您的计算机首次启动时,NUMLOCK键将被关闭,而值2会使NUMLOCK键打开默认。

这些不是注册表中唯一的字符串值类型。 其他人可能指向文件或文件夹的路径,或作为系统工具的描述。

一个字符串值在注册表编辑器中作为“REG_SZ”类型的注册表值列出。

多字符串值

多字符串值与字符串值类似,唯一的区别是它们可以包含值列表而不是一行。

Windows中的磁盘碎片整理程序工具使用以下多字符串值来定义服务应具有的权限的某些参数:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ defragsvc \ RequiredPrivileges

打开此注册表值显示它包含以下所有字符串值:

SeChangeNotifyPrivilege SeImpersonatePrivilege SeIncreaseWorkingSetPrivilege SeTcbPrivilege SeSystemProfilePrivilege SeAuditPrivilege SeCreateGlobalPrivilege SeBackupPrivilege SeManageVolumePrivilege

并非注册表中的所有多字符串值都会有多个条目。 有些函数的功能与单个字符串值完全相同,但如果需要更多条目,则需要额外的空间。

注册表编辑器将多字符串值列为“REG_MULTI_SZ”类型的注册表值。

可扩展字符串值

可扩展的字符串值就像上面的字符串值,只是它们包含变量。 当Windows或其他程序调用这些类型的注册表值时,它们的值将扩展到变量所定义的值。

大多数可扩展字符串值在注册表编辑器中很容易识别,因为它们的值包含%符号。

环境变量是可扩展字符串值的很好例子:

HKEY_CURRENT_USER \ Environment \ TMP

TMP可扩展字符串值为%USERPROFILE%\ AppData \ Local \ Temp 。 这种类型的注册表值的好处是数据不需要包含用户的用户名,因为它使用%USERPROFILE%变量。

当Windows或其他应用程序调用此TMP值时,它将转换为该变量设置为的任何值。 默认情况下,Windows使用此变量来显示像C:\ Users \ Tim \ AppData \ Local \ Temp这样的路径。

“REG_EXPAND_SZ”是注册表编辑器列出可扩展字符串值的注册表值类型。

二进制值

顾名思义,这些类型的注册表值是用二进制写的。 他们在注册表编辑器中的图标是蓝色的1和零。

HKEY_CURRENT_USER \ Control Panel \ Desktop \ WindowMetrics \ CaptionFont

上面的路径在Windows注册表中找到, CaptionFont是二进制值。 在这个例子中,打开这个注册表值显示了Windows中字幕的字体名称,但是它的数据是以二进制形式写成的,而不是以常规的,人类可读的形式写入。

注册表编辑器列出“REG_BINARY”作为二进制值的注册表值的类型。

DWORD(32位)值和QWORD(64位)值

DWORD(32位)值和QWORD(64位)值在Windows注册表中都有一个蓝色图标。 它们的值可以用十进制或十六进制格式表示。

一个应用程序可能创建一个DWORD(32位)值和另一个QWORD(64位)值的原因不在于它是从32位还是64位版本的Windows运行,而仅取决于位长度的价值。 这意味着您可以在32位和64位操作系统上同时拥有这两种注册表值。

在这种情况下,“字”意味着16位。 那么DWORD表示“双字”或32位(16×2)。 按照此逻辑,QWORD表示“四字”或64位(16 X 4)。

应用程序将创建它所需的适当注册表值,以符合这些位长度规则。

以下是Windows注册表中DWORD(32位)值的一个示例:

HKEY_CURRENT_USER \ Control Panel \ Personalization \ Desktop Slideshow \ Interval

打开这个DWORD(32位)值可能会显示1800000的数值数据(和1677的1b7740)。 此注册表值定义了您的屏幕保护程序在照片幻灯片中移动通过每张幻灯片的速度(以毫秒为单位)。

注册表编辑器将DWORD(32位)值和QWORD(64位)值分别显示为“REG_DWORD”和“REG_QWORD”注册表值类型。

备份& 恢复注册表值

无论您是否只更改一个值, 都要在开始前进行备份,以确保您可以将其还原到注册表编辑器,以防出现意外情况。

不幸的是,你无法备份单个注册表值。 相反,您必须备份该值所在的注册表项。请参阅如何备份Windows注册表,如果您需要帮助,请执行此操作。

注册表备份保存为REG文件 ,如果您需要撤消所做的更改,则可以将其恢复到Windows注册表。 如果您需要帮助,请参阅如何还原Windows注册表

何时需要打开/编辑注册表值?

创建新的注册表值或删除/编辑现有的注册表值可以解决您在Windows或其他程序中遇到的问题。 您也可以更改注册表值来调整程序设置或禁用应用程序的功能。

有时,您可能需要打开注册表值,仅用于信息目的。

以下是一些涉及编辑或打开注册表值的示例:

有关对注册表值进行更改的一般概述,请参阅如何添加,更改和删除注册表项和值

有关注册表值的更多信息

打开注册表值将允许您编辑其数据。 与启动它们时计算机上的文件不同,只需打开注册表值即可编辑它们。 换句话说,在Windows注册表中打开任何注册表值是完全安全的。 但是,在不知道自己在做什么的情况下编辑值并不是一个好主意。

在某些情况下,只有重新启动计算机后 ,更改注册表值才会生效。 其他人根本不需要重新启动,因此他们的更改将立即反映出来。 由于注册表编辑器不会告诉您哪些需要重新启动,因此如果注册表编辑似乎不起作用,则应该重新启动计算机。

您可能会在Windows注册表中看到一些注册表值为REG_NONE 。 这些是在将空数据写入注册表时创建的二进制值。 打开此类型的注册表值将其值数据显示为十六进制格式的零,注册表编辑器将这些值列为(零长度二进制值)

使用命令提示符 ,您可以使用reg deletereg add命令开关删除和添加注册表项。

注册表项中所有注册表值的最大大小限制为64千字节。