看懂Windows注册表“心电图”

技巧与实践

有人形象地把注册表比喻成Windows的心脏!注册表既是一个让菜鸟心存畏惧的地方,也是一个让Windows应用高手窃喜的极乐之地。前者是因为害怕注册表受损而导致Windows全盘崩溃,后者则是因为找到了系统核心,而让Windows的深层应用能够如鱼得水。

在Windows XP中,注册表可以起到纠正系统错误、恢复崩溃系统、提高运行速度和使用效率、加强系统安全性,以及控制服务器等作用。它通常存储在“C:\Windows\System32\Config”文件夹中。通过本文的学习,我们将能看懂Windows的“心电图”。

一、了解五大根项

注册表的定义是Windows 9X/NT/2000的中央分层数据库,用于存储所有用户、应用程序和硬件设备配置时的信息。依次单击“开始→运行”,在弹出的“运行”栏中输入“Regedit”命令,在打开的“注册表编辑器”窗口中可以看到注册表的所有内容。

注册表是按照子树、子树的项、子项和值的层次结构组织的。它具有两棵真正的注册表子树:HKEY_LOCAL_MACHINE 和 HKEY_USERS。其余的三棵子树是这两棵子树中部分内容的“快捷方式”,其目的是为了便于查找注册表中的信息,因此构成了五棵子树。它们的作用分别是:

HKEY_LOCAL_MACHINE:可缩写为"HKLM",它包含了计算机硬件和操作系统数据,如总线类型、系统内存、设备驱动程序和启动控制数据等等。

HKEY_USERS:可缩写为"HKU",它包含了动态加载的用户配置文件和默认配置文件的信息。

HKEY_CURRENT_USER:可缩写成“HKCU”,它包含了当前以交互方式登录的用户配置文件,包括环境变量、桌面设置、网络连接、打印机和程序首选项。它是HKEY_USERS的子项。

HKEY_CLASSES_ROOT:可缩写为"HKCR",它包含了用于各种OLE技术和文件关联的信息。它对应了HKEY_LOCAL_MACHINE\SOFTWARE\Classes 或 HKEY_CURRENT_USER\SOFTWARE\Classes中存在的项或值。

HKEY_CURRENT_CONFIG:可缩写为“HKCC”。它包含了计算机当前硬件的配置信息,其中的数据随当前连接到的网络类型、硬件驱动、软件安装的改变而改变。它属于HKEY_LOCAL_MACHINE的子项,指向“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current”。这属于一个着重于查看信息的子树,一般无须进行调整。

二、值的名称、数据类型和内容

在每个注册表项或子项中都可以包含称为“值”的数据。值具有三个部分,即:值的名称、值的数据类型和值的内容,值的三个部分总是按一定顺序显示(图1)。

17-f13-1-2.jpg
图1

其中,名称和数据类型一般是由注册表内置决定,具体内容则可以由用户来指定。值得注意的是,不同的数据类型往往只适应指定的环境,如下表所示。

17-f13-b1.jpg

三、修改注册表的基本技能

在注册表编辑器窗口中编辑注册表内容时需要掌握几项基本技能。

1.查找

按下“Ctrl+F”键后,可以使用“查找”功能快速找出所需子项或值的名称位置。此后,还可以通过不断地按F3键进行相同数据的重复查找。

2.更改内容

如果需要更改子项或值的内容,只须双击右侧窗口中的“默认”值或特定值的名称,在弹出的属性窗口中输入数据即可(图2)。

17-f13-1-3.jpg
图2

除了上述方法外,还可以通过制作后缀名为Reg的文件实现双击导入式的数据写入。

3.删除

手工删除子项或值的方法很简单,选中子项或值并按下Delete键即可;如果需要自动删除,则可以通过编写Reg文件来实现。例如,下面的方法可以自动清除IE地址栏的访问记录:在注册表中进入[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer]项,选中其下的“TypedURLs”子项并单击鼠标右键选择“导出”。接着,用记事本打开导出的REG文件,在其中的“[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\TypedURLs]”语句前添加“-”符号,即改成“[-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\TypedURLs]”。完成修改操作并保存文件后,以后要删除TypedURLs下的所有值时,只须双击此REG文件即可。

4.重命名

重命名也是一项重要的注册表内容修改方法,只不过它修改的是子项或值的名称,其数据类型一般不变。进行重命名的操作很容易:单击选中子项或值,按下F2键进入重命名状态后,再进行相应的更名操作即可。

5.备份与恢复

最简单的注册表备份方法是:在注册表编辑器窗口选中“我的电脑”项后,单击“文件→导出”菜单并根据向导提示,将所有的注册表信息导出到一个非启动分区;在需要恢复注册表时,单击“文件→导入”菜单并根据向导提示,即可使用备份的注册表内容覆盖当前的注册表内容了。

四、注册表应用实战

在对注册表有了基本认识后,就可以通过实例加深了解。下面以子树为平台,讲解几个较容易理解的应用实例:

1.HKEY_LOCAL_MACHINE应用实例

以禁用USB设备为例,在展开到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR”子项后,将右侧窗格中的“Start”值的内容改为数字“4”并重新启动Windows XP。稍后,将USB设备连接到计算机时将无法正常运行。

2.HKEY_CURRENT_USER应用实例

以重定向IE的History路径为例,在“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders”子项中,双击右侧窗口中“History”键,将内容更改为新的路径即可。

3.HKEY_CLASSES_ROOT应用实例

以取消快捷方式的箭头为例,展开到“HKEY_CLAS

SES_ROOT\lnkfile”子项,把右侧窗口中的“IsShortcut”值删除并重启计算机即可。

4.HKEY_USERS应用实例

以调整一些系统资源的存储路径为例,进入“HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders”子项后,在右侧的窗口中进行路径的更改即可。一般不要直接访问此子树,而应通过子树HKEY_CURRENT_USER进行相关的设置。

HKEY_CURRENT_CONFIG着重于查看,所以无须进行设置操作。

延伸知识:Regedit、Regedt32与64位注册表

随着Windows注册表技术的发展,除了Regedit工具外,Win2000及以上版的用户还可以使用Regedt32.exe这个工具(Win2000中可以制作克隆账户)。Regedt32.exe在WinNT/2000时代还是一个强大的工具,到了WinXP/2003中却仅是一个用来运行Regedit.exe的小程序。因此,我们可以不必理会它。

在64位的操作系统中,注册表被分成了32位注册表项和64位注册表项。默认的64位的注册表编辑器Regedit.exe可以显示64位和32位的注册表项(在64位版本的注册表编辑器中,32位注册表项显示在“HKEY_LOCAL_MACHINE\Software\WOW6432Node”子项中)。如果要单独查看32位版本注册表编辑器,可以通过在%systemroot%\Syswow64文件夹中执行Regedit程序来实现。

一木提醒:

修改注册表是一柄双刃剑,它既可以为系统起到强身健体的妙效,也可以给系统造成致命损伤。所以,在进行各种注册表的修改操作之前,一定要做好注册表的备份操作,以便在系统出现问题时能够迅速恢复系统的健康。