新萤火虫论坛

 找回密码
 注册
查看: 1603|回复: 2

认识操作系统中的注册表

[复制链接]
发表于 2008-4-12 09:52:29 | 显示全部楼层 |阅读模式
PC机及其操作系统的一个特点就是允许用户按照自己的要求对计算机系统的硬件和软件进行各种各样的配置。早期的图形操作系统,如Win3.x中,对软硬件工作环境的配置是通过对扩展名为.ini的文件进行修改来完成的,但INI文件管理起来很不方便,因为每种设备或应用程序都得有自己的INI文件,并且在网络上难以实现远程访问。

  为了克服上述这些问题,在Windows 95及其后继版本中,采用了一种叫做“注册表”的数据库来统一进行管理,将各种信息资源集中起来并存储各种配置信息。按照这一原则,Windows各版本中都采用了将应用程序和计算机系统全部配置信息容纳在一起的注册表,用来管理应用程序和文件的关联、硬件设备说明、状态属性以及各种状态信息和数据等。  

  与INI文件不同的是:

  1.注册表采用了二进制形式登录数据;

  2.注册表支持子键,各级子关键字都有自己的“键值”;

  3.注册表中的键值项可以包含可执行代码,而不是简单的字串;

  4.在同一台计算机上,注册表可以存储多个用户的特性。  

  注册表的特点有:

  1.注册表允许对硬件、系统参数、应用程序和设备驱动程序进行跟踪配置,这使得修改某些设置后不用重新启动成为可能。

  2.注册表中登录的硬件部分数据可以支持高版本Windows的即插即用特性。当Windows检测到机器上的新设备时,就把有关数据保存到注册表中,另外,还可以避免新设备与原有设备之间的资源冲突。

  3.管理人员和用户通过注册表可以在网络上检查系统的配置和设置,使得远程管理得以实现。

  由于注册表是一个二进制的配置数据库文件(Windows的命根子),因而,用户无法直接存取注册表。为了让高级用户能够编辑注册表,Windows2000提供了注册表编辑器“c”和“Regedt32”。对这种只使用Windows提供的注册表编辑器进行编辑的操作。  

  编辑器在安装Windows时已经被安装到硬盘中了,但是并未在“附件”程序组中建有快捷方式。用户如果需要使用注册表编辑器,可以在“运行”对话框内输入Regedt32或Regedit即可打开注册表编辑器,如图:

  

  或者在“命令提示符”中执行Regedt32.exe也可以进入注册表编辑器,

  如图:

   由于在Windows9x中采用了注册表方式,使用户可以按自己的要求对计算机系统的硬件和软件进行灵活配置。

  1.什么是注册表?

  注册表是 Windows 的一个内部数据库,是一个巨大的树状分层的数据库。它容纳了应用程序和计算机系统的全部配置信息、系统和应用程序的初始化信息、应用程序和文档文件的关联关系、硬件设备的说明、状态和属性以及各种状态信息和数据。注册表中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行,从而在整个Windows系统中起着核心作用。它包括如下一些内容:

  (1)软、硬件的有关配置和状态信息,注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据。

  (2)联网计算机的整个系统的设置和各种许可、文件扩展名与应用程序的关联关系,硬件部件的描述、状态和属性。

  (3)性能记录和其它底层的系统状态信息,以及其它一些数据。

  如果注册表受到了破坏,轻者使Windows在启动的过程出现异常,重者可能会导致整个系统的完全瘫痪。因此正确地认识、使用,特别是及时备份以及有问题时恢复注册表,对Windows用户来说就显得非常重要了。

  2.注册表文件:.DAT

  Windows98将所有注册表文件存入2个文件System.dat和User.dat中。它们是二进制文件,不能用文本编辑器打开查看。它们存于Windows目录下,具有隐含、系统和只读属性。 System.dat包含了计算机特定的配置数据,如安装的硬件和设备驱动程序的有关信息等。User.dat包含了用户特定的数据,如桌面设置,墙纸和窗口颜色设置等。User.dat文件的位置在以某个用户名登录时,其位于C\Windows\profiles\用户名目录下,系统同时在C\Windows目录下保留了一个缺省的User.dat文件,以备新用户使用。

  说明:System.da0和User.da0这两个文件属于Windows95,是注册表的备份文件,它们在系统每次成功启动后创建。在Windows98中,注册表检查器将备份文件做成CAB文件。

  二、注册表编辑器——Registry Editor

  1.打开注册表编辑器

  注册表的打开方式很简单,单击Windows“开始”按钮,找到“运行”,鼠标左键单击。在弹出的运行对话框中填入 regedit,按“确定”按钮即可。

  我们可以看到,在注册表中,所有的数据都是通过一种树状结构以键和子键的方式组织起来,十分类似于目录结构。每个键都包含了一组特定的信息,每个键的键名都是和它所包含的信息相关的。

  2.注册表编辑器的基本操作

  注册表编辑器有一些基本操作命令,在这里以当前使用的Desktop为例来说明注册表编辑器的基本操作。

  (1) 打开HKEY_CURRENT_USER\Control Panel\desktop\WindowMetrics,在右边的窗口中是一些名称和数据。

  (2)用鼠标右键单击编辑器右边的窗格,会弹出一个快捷菜单,可以选择它来创建一个主键、一个字符串、一个二进制值或者一个DWORD值。

  (3)右击编辑器左边窗格的desktop关键字,会弹出另一个快捷菜单,在这里,你可以创建一个新的主键、串值、二进制值或者DWORD值,还可以进行查找、删除和重命名等操作。

  (4)双击编辑器右边的窗格中的关键字名,将会弹出一个编辑窗口,在那儿可以调整常量的值,或者删除该常量,以及进行重命名等,比如双击字符串“ScreenSaveActive”,弹出如图2的对话框。

  三、注册表的备份与恢复

  在安装新的应用程序或添加新硬件时都可能搞乱系统的注册表,从而引发不测,所以应该定期地备份user.dat和system.dat文件(编者:在进行注册表修改之前,强烈建议你先备份注册表,以防修改过程误操作引起系统崩溃)。

  在Windows98中的Windows目录下,仍有System.dat和User.dat两个文件用来存放系统注册表信息。下面笔者就根据自己的使用体会来谈谈在Windows98中对注册表进行备份及恢复的几种常用方法。

  1.直接进行备份与恢复

  这是一种很原始的方法,即直接将所需之System.dat及User.dat两个文件拷贝存放在硬盘某个指定目录下或直接拷到软盘上作为备份,恢复时再将该备份替换覆盖回原处即可,当然在备份及恢复时都需对这两个文件的只读及隐藏属性进行相应的修改操作,让隐藏文件显示出来。

  说明:如因注册表问题而导致系统瘫痪,开机后无法进入Windows系统时,可用应急启动盘进入Windows98自带的DOS界面后,用常规的DOS操作来将存在硬盘或软盘中的备份覆盖回原处,恢复备份的注册表数据。

  2.注册表编辑器的导出与引入

  运行Regedit.exe打开Windows98注册表后,利用“注册表”的“导出”及“引入”功能也可以用来备份或恢复注册表信息。具体方法为:在“注册表编辑器”窗口中点击左上角“注册表”下拉菜单,点击“导出注册表文件……”项,在出现的“导出注表文件”对话框中,键入欲备份注册表的文件名及其保存位置,再按“保存”按钮即可。需恢复注册表时,用同样的方法打开注册表编辑器,打开“注册表”下拉菜单后点击“引入注册表文件……”项,在出现的对话框中选中所需恢复的备份文件,再按“打开”按钮即可将该注表备份恢复回Windows系统了。

  说明:该方法主要适合于Windows系统还未瘫痪或可以通过安全模式启动Windows98系统时恢复注册表之用,如因注册表问题而无法进入Windows系统时,则该法就无能为力了。

  3.系统的注册表自动备份

  在Windows98中,取消了Windows 95中每次开机时自动以System.da0和User.da0为名的两个文件来备份注册表数据的功能,而新增加了一个以.Cab(Cabinet)作后缀的压缩文件作为注册表备份的功能,具体使用如下:

  该备份过程是由Windows98系统自动完成的。在用户当天第一次开机时,Windows98将会自动将系统中原有的注表信息,包括System.dat、User.dat、System.ini和Win.ini这四个文件都压缩成Cab形式的文件,在Windows\Sysbacup 目录下会有诸如rb000.cab和rb001.cab之类的压缩文件,这几个就是最近的五个系统备份(Windows\Sysbckup是隐藏目录,要查看须让隐藏的文件和目录显示出来)。系统自动保存最近5次开机的注册表数据。

  一般说来,当Windows98安装好后,会在启动时自动运行Scanregw.exe/autorun,目的是每天备份一次注册表。你可以在开始选单上选择运行“Msconfig”,运行Microsoft的系统配置程序,点“启动”选项,查看该命令是否运行。倘若该命令没有被运行,则运行注册表编辑器“Regedit”,在“HKEY_LOCAL_MACHINE\Soft ware\Microsoft\Windows\CurrentVersion\Run”主键下新建一个字符串值,键值为“C\Windows\scanregw.exe/autorun”(这里假设Windows98安装目录为C\Windows)。这样,Windows98就会自动备份最近5次的注册表,以rb00.cab形式存放在C\Windows\Sysbckup\路径下。 1.修改注册表

  为了充分发挥系统的性能,有必要对注册表进行适当的修改(但是,如果你对注册表不太熟悉的话,请不要轻易修改它)。例如,通过修改注册表可以加快网络传输速度。具体操作如下:运行Windows目录下的Regedit.exe,出现编辑窗口时单击“编辑”菜单的“查找”命令,在查找框内键入“MaxMTU”后回车,找到该键值名后,右击它,在快捷菜单中单击“修改”,将其值设为576;用同样的方法将该窗口的“MaxMSS”值设为536;将“DefaultRcv Windows”的值设为3216;将“Default TTL”的值设为64。如果该窗口中缺少某一项,就右击窗口右边空白处,在快捷菜单中单击“新建/字符串值”,键入相应的名字,再将其值设为上面数据即可。

  2.对注册表的管理

  在Win98中,注册表有一个检测软件:ScanReg。当注册表出现问,只要输入ScanReg,系统就启动相应版本,对注册表进行压缩备份,并将备份存放在Windows\Sysbackup目录下,当注册表出错时,就使用备份文件覆盖掉坏注册表文件。

  3.用软件管理注册表

  现在有很多用于管理注册表的软件,例如:注册表修改软件Reg2000;注册表监视软件Regmon;注册表清理软件Regclean等。下面以微软公司开发的Regclean为例说明用软件对注册表的管理。在频繁的安装和卸载一些软件时,注册表中会留下许多垃圾信息,你可以通过运行Regclean删除这些无用的表项,并把所做的修改存放在一个Undo文件中,用户可随时恢复。经过Regclean的处理,系统性能得到很大的提升,尤其是缩短了系统的启动时间。而且只要系统一启动,Regclean就会搜索注册表,如果发现错误,只要按一下FixError就大功告成了。Regclean清理注册表后,会产生一个*.reg文件,里面的内容是刚被清理出的注册表项,可以用各种字处理软件打开查看,但请注意:不能直接选“打开”(即:把它们加入注册表),否则这些垃圾信息就会重新登录到注册表中,刚才的FixError工作就白做了。
在Windows98的注册表中,所有的数据都是通过一种树状结构以键和子键的方式组织起来,就象我们的磁盘文件系统的目录结构一样。每个键都包含了一组特定的信息,每个键的键名都是和它所包含的信息相关联的。如果某个键包含了子键,则在注册表编辑器窗口中代表这个键的文件夹的左边将有“+”符号,以表示在这个文件夹中有更多的内容。如果这个文件夹被用户打开了,那么这个“+”就会变成“-”,我们可以象打开文件夹一样层层的打开注册表树,当然我们有时并不清楚我们要找的键在哪个目录分支下面,我们就得搜索相应的关键字。我们来看看注册表树最顶层的六个分支所分别代表的含义,这样我们在修改的时候就可以做到心中有数了。  

  1.HKEY_CLASSES_ROOT

  管理文件系统。根据在Windows 98中安装的应用程序的扩展名,该根键指明其文件类型的名称,相应打开该文件所要调用的程序等等信息。

  2.HKEY_CURRENT_USER

  管理系统当前的用户信息。在这个根键中保存了本地计算机中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码。在用户登录Windows 98时,其信息从HKEY_USERS中相应的项拷贝到HKEY_CURRENT_USER中。  

  3.HKEY_LOCAL_MACHINE

  管理当前系统硬件配置。在这个根键中保存了本地计算机硬件配置数据,此根键下的子关键字包括在SYSTEM.DAT中,用来提供HKEY_LOCAL_MACHINE所需的信息,或者在远程计算机中可访问的一组键中。

  这个根键里面的许多子键与System.ini文件中设置项类似。  

  4.HKEY_USERS

  管理系统的用户信息。在这个根键中保存了存放在本地计算机口令列表中的用户标识和密码列表。同时每个用户的预配置信息都存储在HKEY_USERS根键中。HKEY_USERS是远程计算机中访问的根键之一。

  5.HKEY_CURRENT_CONFIG

  管理当前用户的系统配置。在这个根键中保存着定义当前用户桌面配置(如显示器等等)的数据,该用户使用过的文档列表(MRU),应用程序配置和其他有关当前用户的Windows 98中文版的安装的信息。

  6.HKEY_DYN_DATA

  管理系统运行数据。在这个根键中保存了系统在运行时的动态数据,此数据在每次显示时都是变化的,因此,此根键下的信息没有放在注册表中。

  1.字符串值(S)

  在Windows98的注册表中,表示文件的描述、硬件的标识等等信息一般都用字符串值。字符串值由字母和数字组成,它的最大长度不能超过255个字符。通过键、键值就组成了一种键值项数据,这就相当于Win.ini、Ssytem.ini文件中每个小节下面的设置行一样的道理。

  2.二进制值(B)

  在Windows的注册表中,二进制值是没有长度限制的,可以是任意个字节长。在注册表编辑器中,二进制以十六进制的方式显示出来。

  3.DWORD值(D)

  在Windwos98的注册表中,DWORD值是一个32位(双字节长)长度的数值。在注册表编辑器中,系统以十六进制的方式显示DWORD值。

  在修改中这么多子键并不一定都用得作,其中对我们最有用还是 HKEY_LOCAL_MACHINE和 HKEY_USERS这两个键下面的子键:

  我们先看看 HKEY_LOCAL_MACHINE键先面的几个重要的子键及其作用:

  1)HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\uninstall 保存Windows98系统中已经安装了的Windows应用程序卸载信息。

  2)HKEY_LOCAL_MACHINE\system\currentControl-Set\control\keyboard Layouts 保存Windows98中键盘使用的语言以及各种中文输入法的信息。

  

  3)HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\user shell folders 保存计算机中个人文件夹、收藏夹的路径。

  4)HKEY_LOCAL_MACHINE\system\CurrentControl-Set\services\class 保存控制面板-增添硬件设备-设备类型目录,全面管理你的硬件信息。

  5)HKEY_LOCAL_MACHINE\software\microsoft\win-dows\currentVersion\run 保存由控制面板设定的计算机启动时运行程序的名称,其图标显示在任务条右边。这也是我们经常修改和用到的一个目录。

  6)HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\Policies\Ratings 保存了IE的“安全”\“分级审查”中设置的口令(数据加密),若遗忘了口令,删除 Ratings 中的数据即可解决问题。

  7)HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\desktop\nameSpace 保存桌面中特殊的图标,如回收站、收件箱、网上邻居等等,你可以把它改得面目全非,人家都认不出来。

  先面我们再来看看另外一个重要的键HKEY_USERS下面的重要分支:

  1)HKEY_USERS\.Default\so..\microsoft\windows\current-Version\explorer\RunMRU保存“开始 \ 运行...”中运行的程序列表信息。清除文档菜单时该分支将被清空。

  2)HKEY_USERS\.Default\software\microsoft\internet explorer\typeURLs保存IE4.0浏览器地址栏中输入的URL地址列表信息。清除文档菜单时它也将被清空。

  3)HKEY_USERS\.Default\so..\microsoft\windows\current-Version\explorer\RecentDocs 保存最近使用的十五个(数目是可以修改的)文档的快捷方式,清除文档菜单时将被清空。

  4)HKEY_USERS\.default\software\microsoft\windows\currentVersion\applets 保存Windows98应用程序的记录数据信息。    

  在上面我们大致介绍了Windows98的注册表的结构和重要的信息,这对于我们修改注册表是非常有用的。
 楼主| 发表于 2008-4-12 09:53:37 | 显示全部楼层

坐自己的沙发

第一个到访者,很是高兴
回复 支持 反对

使用道具 举报

发表于 2008-4-12 12:35:55 | 显示全部楼层
注册表 菜鸟还是不要紧的好···
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|萤火虫

GMT++8, 2024-12-29 07:57 , Processed in 0.285462 second(s), 6 queries , File On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表