标题：系统注册表
概述/由来
在Windows 3.x操作系统中，注册表是一个极小文件，其文件名为Reg.dat，里面只存放了某些文件类型的应用程序关联，大部分的设置放在Win.ini、System.ini等多个初始化INI文件中。由于这些初始化文件不便于管理和维护，时常出现一些因INI文件遭到破坏而导致系统无法的启动的问题。为了使系统运行得更为稳定、健壮，Windows 95/98设计师们借用了Windows NT中的注册表的思想，将注册表引入到Windows 95/98操作系统中，而且将INI文件中的大部分设置也移植到注册表中，因此，注册表在Windows 95/98操作系统的启动、运行过程中起着重要的作用。注册表顾名思义是注册文件,当你在电脑里进行某一操作的时候,都会写入注册表,用以记录.它还有作用就是控制硬件软件等,比如你可以在注册表里调整BISO和  2级缓存,修改参数等
注册表
从Windows 95开始，Microsoft在Windows中引入了注册表（英文为REGISTRY）的概念（实际上原来在Windows NT中已有此概念）。如果该注册表由于某种原因受到了破坏，会使Windows的启动过程出现异常，严重的可能会导致整个Windows系统的完全瘫痪。因此正确地认识、修改、及时地备份以及有问题时恢复注册表，对Windows用户来说就显得非常重要了。
如何打开注册表
在修复注册表前请备份,
点“开始”→运行→输入“regedit”→确定
注册表的结构划分及相互关系
WINDOWS的注册表有六大根键，相当于一个硬盘被分成了六个分区。
在“运行”对话框中输入RegEdit，然后单击“确定”按钮，则可以运行注册表编辑器。
Windows 98中文版的注册表Registry(System.dat、User.dat、Config.pol)的数据组织结构。
注册表的根键共六个。这些根键都是大写的,并以HKEY_为前缀;这种命令约定是以Win32 API的Registry函数的关键字的符号变量为基础的。
虽然在注册表中，六个根键看上去处于一种并列的地位，彼此毫无关系。但事实上，HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG中存放的信息都是HKEY_LOCAL_MACHINE中存放的信息的一部分，而HKEY_CURRENT_USER中存放的信息只是HKEY_USERS存放的信息的一部分。
HKEY_LOCAL_MACHINE包括HKEY_CLASSES_ROOT和HKEY_CURRENT_USER中所有的信息。在每次系统启动后，系统就映射出HKEY_CURRENT_USER中的信息，使得用户可以查看和编辑其中的信息。
实际上，HKEY_LOCAL_MACHINE\SOFTWARE\Classes就是HKEY_CLASSES_ROOT，为了用户便于查看和编辑，系统专门把它作为一个根键。同理，HKEY_CURRENT_CONFIG\SY-STEM\Current Control就是HKEY_LOCAL_MACHINE\SYSTEM\Current Control。
HKEY_USERS中保存了默认用户和当前登录用户的用户信息。HKEY_CURRENT_USER中保存了当前登录用户的用户信息。
HKEY_DYN_DATA保存了系统运行时的动态数据，它反映出系统的当前状态，在每次运行时都是不一样的，即便是在同一台机器上。
根据上面的分析，注册表中的信息可以分为HKEY_LOCAL_MACHINE和HKEY_USERS两大类，这两大类的详细内容请看后面的介绍。
六大根键的作用
在注册表中，所有的数据都是通过一种树状结构以键和子键的方式组织起来，十分类似于目录结构。每个键都包含了一组特定的信息，每个键的键名都是 和它所包含的信息相关的。如果这个键包含子键，则在注册表编辑器窗口中代表这个键的文件夹的左边将有“+”符号，以表示在这个文件夹中有更多的内容。如果这个文件夹被用户打开了，那么这个“+”就会变成“－”。
1.HKEY_USERS
该根键保存了存放在本地计算机口令列表中的用户标识和密码列表。每个用户的预配置信息都存储在HKEY_USERS根键中。HKEY_USERS是远程计算机中访问的根键之一。
2.HKEY_CURRENT_USER
该根键包含本地工作站中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码(注：此密码在输入时是隐藏的)。用户登录Windows 98时，其信息从HKEY_USERS中相应的项拷贝到HKEY_CURRENT_USER中。
3.HKEY_CURRENT_CONFIG
该根键存放着定义当前用户桌面配置(如显示器等)的数据,最后使用的文档列表（MRU）和其他有关当前用户的Windows 98中文版的安装的信息。图5为HKEY_CURRENT_CONFIG子关键字之间的连接情况。
4.HKEY_CLASSES_ROOT
根据在Windows 98中文版中安装的应用程序的扩展名,该根键指明其文件类型的名称。
在第一次安装Windows 98中文版时,RTF(Rich Text format)文件与写字板(WordPad)&127;联系起来,但在以后安装了中文Word 6.0后，双击一个RTF文件时，将自动激活Word。存放在SYSTEM.DAT中的HKEY_CLASSES_ROOT，将替代WIN.INI文件中的[Extensions]&127;小节中的设置项,它把应用程序与文件扩展名联系起来,它也替代了Windows 3.x中的Reg.dat文件中的相似的设置项。
5.HKEY_LOCAL_MACHINE
该根键存放本地计算机硬件数据,此根键下的子关键字包括在SYSTEM.DAT中,用来提供HKEY_LOCAL_MACHINE所需的信息,或者在远程计算机中可访问的一组键中。
该根键中的许多子键与System.ini文件中设置项类似。图7显示了HKEY_LOCAL_MACHINE根键下的各个子键之间的情况。
6.HKEY_DYN_DATA
该根键存放了系统在运行时动态数据，此数据在每次显示时都是变化的，因此，此根键下的信息没有放在注册表中。图8显示了HKEY_DYN_DATA根键下的各个子键的情况。
注册表部分重要内容
注册表是一个大型数据库Registry。要详细地分析该数据库，不是一两页就能介绍完。我曾经用了半年多时间分析此数据库结构。下面只介绍部分重要内容。
(一)HKEY_CLASS_ROOT
1.HKEY_CLASS_ROOT/Paint.Pricture/DefaultIcon双击窗口右侧的默认字符串，在打开的对话框中删除原来的“键值”，输入%1。重新启动后，在“我的电脑”中打开Windows目录，选择“大图标”，然后你看到的Bmp文件的图标再也不是千篇一律的MSPAINT图标了，而是每个Bmp文件的略图（前提是未安装ACDSee等看图软件）。
(二)HKEY_CURRENT_USER
1.HKEY_CURRENT_USER\Control Panel\Desktop 中新建串值名MenuShowDelay=0 可使“开始”菜单中子菜单的弹出速度提高。
2.在HKEY_CURRENT_USER\Control Panel\Deskt-op\WindowsMeterics中新建串值名MinAnimate，值为1启动动画效果开关窗口，值为0取消动画效果。
（三） HKEY_LOCAL_MACHINE
1.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\user shell folders 保存个人文件夹、收藏夹的路径。
2.HKEY_LOCAL_MACHINE\system\currentControl-Set\control\keyboard Layouts 保存键盘使用的语言以及各种中文输入法。
3.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\uninstall 保存已安装的Windows应用程序卸载信息。
4.HKEY_LOCAL_MACHINE\system\CurrentControl-Set\services\class 保存控制面板-增添硬件设备-设备类型目录。
5.HKEY_LOCAL_MACHINE\system\Current-ControlSet\control\update 设置刷新方式。值为00设置为自动刷新，01设置为手工刷新[在资源管理器中按F5]。
6.HKEY_LOCAL_MACHINE\software\microsoft\win-dows\currentVersion\run 保存由控制面板设定的计算机启动时运行程序的名称，其图标显示在任务条右边。在“启动”文件夹程序运行时图标也在任务条右边。
7.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\Policies\Ratings 保存IE4.0中文版“安全”\“分级审查”中设置的口令(数据加密),若遗忘了口令,删除 Ratings 中的数据即可解决问题。
8.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\desktop\nameSpace 保存桌面中特殊的图标,如回收站、收件箱、MS Network等。
（四） HKEY_USERS
1.HKEY_USERS\.Default\software\microsoft\internet explorer\typeURLs保存IE4.0浏览器地址栏中输入的URL地址列表信息。清除文档菜单时将被清空。
2.HKEY_USERS\.Default\so..\mi..\wi..\current-Version\ex..\menuOrder\startMenu保留程序菜单排序信息。
3.HKEY_USERS\.Default\so..\microsoft\windows\current-Version\explorer\RunMRU保存“开始 \ 运行...”中运行的程序列表信息。清除文档菜单时将被清空。
4.HKEY_USERS\.Default\so..\microsoft\windows\current-Version\explorer\RecentDocs 保存最近使用的十五个文档的快捷方式(删除掉可解决文档名称重复的毛病)，清除文档菜单时将被清空。
5.HKEY_USERS\.default\software\microsoft\windows\currentVersion\applets 保存Windows应用程序的记录数据。
6.HKEY_USERS\.default\software\microsoft\windows\currentVersion\run保存由用户设定的计算机启动时运行程序的名称，其图标显示在任务条右侧。
键值项数据类型
注册表通过键和子键来管理各种信息。但是，注册表中的所有信息是以各种形式的键值项数据保存下来。在注册表编辑器右窗格中，保存的都是键值项数据。这些键值项数据可分为如下三种类型：
1.字符串值
在注册表中，字符串值一般用来表示文件的描述、硬件的标识等。通常它由字母和数字组成，最大长度不能超过255个字符。在图9所示中，“D:\pwin98\trident”即为键值名“a”的键值，它是一种字符串值类型的。同样地，“ba”也为键值名“MRUList”的键值。通过键值名、键值就可以组成一种键值项数据，这就相当于Win.ini、Ssyt-em.ini文件中小节下的设置行。其实，使用注册表编辑器将这些键值项数据导出后，其形式与INI文件中的设置行完全相同。
2.二进制值
在注册表中，二进制值是没有长度限制的，可以是任意个字节长。在注册表编辑器中，二进制以十六进制的方式显示出来，如图10所示。 在图10中，键值名Wizard的键值“80 00 00 00”就是一个二进制。在如图11所示的“编辑二进制值”对话框时，在编辑框的左边输入十六进制数时，其右边将会显示相应的ASCII码。
3.DWORD值
DWORD值是一个32位（4个字节，即双字）长度的数值。在注册表编辑器中，您将发现系统会以十六进制的方式显示DWORD值，如图12所示。在编辑DWORD数值时，可以选择用十进制还是16进制的方式进行输入