认识Win95的注册表

Author: 杜墨 Date: 1997-01-01

#1  注册表的作用
  众所周知,在Windows 3.x中,使用WIN.INI与SYSTEM.INI两个文本文件保存着系统的关键设置,这两个文件对于Windows 3.x的正常运行起了至关重要的作用。然而INI文件都是文本文件,很容易用一个文本编辑器加以修改,这给系统的安全带来了隐患。此外,每个程序都建有自己的INI文件,使得Windows目录下混杂着一大堆小文件,管理极不方便。为了提高系统的安全性及系统管理上的方便性,Microsoft在Windows 95 与Windows NT中引入注册表,原来保存在WIN.INI、SYSTEM.INI及应用程序本身的初始化文件中的信息都被转移到系统注册表中来了。Microsoft想使注册表成为系统关键数据的集中保存地,并随着32位应用程序的普及逐步取消INI文件。但现在还不能完全没有INI文件,这是因为老的16位的Windows应用程序还需要它们。
  Windows 95的注册表(在英文Windows 95中称为Registry)是一个巨大的数据库,它包含软硬件的有关配置和状态信息,注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据;联网计算机的整个系统的设置和各种许可;文件扩展名与应用程序的关联,硬件部件的描述、状态和属性;性能记录和其他底层的系统状态信息,以及各类其它数据。如果注册表遭到破坏,则Windows 95的功能就会不正常,甚至完全瘫痪。因此如果要对注册表进行编辑,在动手之前一定要加以备份,以防万一。
  对于普通用户来说,虽然并不直接与注册表打交道,但也时刻都离不开它。当你利用控制面板来调整系统的设置或是增加一个新的硬件,或是安装一个新的软件时,系统都要更新注册表,以反映出新的变化。系统中到处出现的属性表,也是用户更新注册表的一个窗口。当安装Windows 95时,如果是在Windows 3.x的基础上升级,则原来在Windows 3.x中的软、硬件的设置都会转移到Windows 95中来,原来安装的软件还会在Windows 95 中正常运行。否则要让这些软件还能在Windows 95 中运行,只能在Windows 95中再安装一次。
#1  注册表的结构
  在Windows 95中,注册表由两个文件组成:System.dat和user.dat,保存在Windows 95所在的文件夹中。前者包含系统硬件和软件的设置,而后者保存着与用户有关的信息,例如:颜色方案、资源管理器的设置以及网络口令等。这两个文件与INI文件不同,它们不是文本文件,而是由二进制数据组成,因而不能轻易地用文本编辑器加以查看与修改。
  Windows95中提供了注册表编辑器(Regedit.exe)这个工具,用来查看和维护注册表。这个程序并不出现在开始菜单上,Microsoft实际上并不希望最终用户来使用它。但要介绍注册表的结构,必须使用注册表编辑器,只有通过它我们才能“看到”其中的结构与组成。现在让我们来运行注册表编辑器,从而在其中揭示出注册表的结构。运行注册表编辑器有两种方法:第一种是利用“开始”菜单中的“运行”命令,在对话框中键入REGEDIT,单击确定按钮;第二种方法是利用资源管理器,在Windows 95 所在的文件夹(目录)中找出Regedit.exe文件,在其上双击,也能启动注册表编辑器(如图所示)。
  从图中可以看出,注册表编辑器与资源管理器的界面相似,在菜单之下是两个窗格,而数据的组织也与资源管理器类似。左面窗格中,由“我的电脑”(My Computer)开始,以下是六个分支,每个分支名都以HKEY开头,称为主键(Key),这相当于资源管理器中的文件夹,表示主键的图标与文件夹图标一样。每个主键图标的的左边有一个加号(+)图标,单击这个加号可将这一分支展开,展开后加号变为减号。可以看到主键下面还包含次级主键(Subkey)。当单击某一主键或次级主键时,主键名左边的文件夹图标变为打开状,右面窗格中的内容会发生相应的变化,右面窗格显示的是所选主键内包含的一个或多个键值(Value)。键值由键值名(Value Name)及键值数据(Value Data)两部分组成,这就是右窗格中的两个列标(名称(Name)、数据(Data))所表示的。
  用资源管理器类比,键值就好象是文件夹中的文件,而文件具有文件名及其内容。也可以用高级语言中的变量来类比键值,键值名相当于变量名,而键值数据相当于变量的内容。键值中的数据可以是字符串型的,其键值名左边有一个标有ab字母的图标;也可以是二进制型的,其键值名左边有一个标有011110(排成两行)的图标(参见图一)。一个主键中可包括多级次级主键,注册表中的信息就是按多级的层次结构组织起来的。在注册编辑器窗口的底部是状态栏,当选定一个主键或次级主键时(层数不限),状态栏中显示出所选主键所处的路径(图1)。
  注册表中的每个分支中保存有该计算机中软硬件设置中某一方面的特定信息与数据。表中列出每个主键分支的说明。
#1  注册表的备份与恢复
  Windows 95对于注册表的保护已经采取了措施。每次成功启动之后,系统都将此次成功启动时的注册表加以备份,System.dat备份为System.da0,User.dat备份为User.da0。备份文件存放在Windows 95 所在文件夹中,但是具有系统与隐藏属性,故一般来说是不可见的。如果由于某种原因注册表遭到了破坏,使得系统不能启动,可以利用Windows 95的启动盘从软盘启动,然后转到Windows 95所在文件夹中,利用Attrib命令,去掉.da0文件的系统和隐藏属性,然后用这两个备份文件将.dat文件加以覆盖,系统所出现的问题往往可以解决。但是如果系统的问题是由于修改注册表而引起的,而问题又是在重新启动之后发现,则这两个备份文件中已经包括了有问题的设置,因而是不可用的。在系统的启动驱动器(一般为C:)的根目录中还保存了安装Windows 95时系统创建的System.dat文件的一个副本,名为System.1st。如果当前注册表无法用其它方法恢复的话,就可以用此文件将System.dat文件覆盖。
  利用注册表编辑器可以在修改之前对注册表进行备份。既可以备份要修改的分支,也可以备份整个注册表。利用注册表的“文件”菜单中的“导出...”命令,即可达到目的。
  除了注册表编辑器中内建的备份功能之外,还可以利用Windows 95安装光盘上的实用程序——CFGBACK,这是一个注册表专用的备份工具,只要将CFGBACK.EXE与CFGBACK.HLP文件复制到Windows 95所在的文件夹中即可使用,运行之后即可以得到注册表的一个备份文件。但是在计算机被设置为多用户使用的情况下,它不备份用户信息。
  当情况变得很糟时,可能Windows 95不能启动,此时要恢复注册表,可在DOS提示符下运行注册表编辑器。
  在DOS提示符下键入REGEDIT/?,可以得到如何引入和引出注册信息的一些帮助。如果你需要恢复一个备份的注册簿,请使用REGEDIT来引入这一备份。如果要改变任何的注册条目,必须利用EDIT程序(或其它的文本编辑器)修改原引出的注册表信息。
#1  利用注册表定制Win95举例
#2  1.改变窗口变化时的动感效果
  当你点击任务栏上的一个应用程序时,窗口恢复到桌面上;当最小化窗口时,窗口缩小到任务栏上。窗口变化时有一个变化过程。假如你不喜欢这种显示过程的处理方式,可以使这种视觉效果失效。启动注册表编辑器,滚动屏幕找到 HKEY-CURRENT-USER\Control Panel\Desktop\WindowMetrics。在右边窗格空白处单击鼠标右键,然后从弹出的菜单中选择“新建”(New) |“串值”( String Value),输入 MinAnimate后回车,这时在右窗格中就有了一个名为MinAnimate的键值,在其上单击鼠标右键并选择“修改”(Modify),在键值数据(Value Data)文本框中输入0并回车。关闭注册表编辑器并重新启动Windows 95 使修改生效。现在,当你极小化一个程序(使它缩回到任务栏上)或者在任务栏上单击它的图标使程序窗口恢复正常或最大状态时,窗口将突然出现在屏幕上,没有视觉变化过程。
#2  2.将回收站改名
  桌面上的图标下面的名称是很容易改变的(只要用右键单击该图标,从右键菜单中选择“重命名”Rename),但是,回收站(Recycle Bin)是个例外。要想将回收站改名,必须使用注册表编辑器来修改注册表。
  运行注册表编辑器。利用“编辑”(Edit)菜单上的“查找”(Find)功能查找“回收站”,若是英文版则查找Recycle Bin,找出对回收站(Recycle Bin)的第一次引用,并在注册表编辑器的右窗格中的默认图标旁边将其显示出来。双击图标打开编辑字符串对话框,键入回收站的新名字(可用汉字或英文);然后按F3键继续查找,在所有出现回收站(Recycle Bin)的地方重复上面的步骤,将每个条目都加以修改。当你重新启动系统时,回收站已被改名。