西安产业园,飞机制造.:有关注册表的问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 04:22:43
我们知道我们每装一个软件,就会在windows的注册表里添上一项,但我不知道有什么用.
比如我把系统装在c盘,其他软件都装在D盘.当我重装了系统后,windows的注册表的软件栏是空的,但那些软件还可以运行,可以象以前一样工作,就没了文件关联.除了这个外,请问注册表还有什么作用?
谢了.

有些软件没注册表是无法运行的
比如 photoshop7.0 你有注册表 可以输入中文
没注册表 你只能输入E文

注册表基本知识

[glow=255,red,2]注册表的由来[/glow]

如今使用的Pc操作系统经历了从DOS到 windows的发展过程。在DOS年代,系统中的硬件设备必须通过Confis.sys和Autoexec.bat两个配置文件在系统初始化过程中加载驱动程序来运行。而软件的配置信息,通常是由软件的编写者根据他自己所喜好的方式加以保存。随后出现的windows 3.x系统,使得这种情况发生了改变。

在windows 3.x中,系统通过Win.ini、System.ini、Control.ini、program.ini等INI文件来保存所有有关操作系统和应用程序的配置信息。其中前两者的作用尤为重要,System.ini负责配置硬件,而win.ini负责桌面设置和应用程序的运行等工作。 随着windows的普及,一些开发者过去没有注意到的问题也逐渐浮现出来。由于各个应用程序不断地往INI文件中添加自己的配置信息,而从不负责删除各INI文件中那些过时、无用的信息,所以随着系统内应用程序数量不断增加,INI文件就变得越来越大,在INI文件中查找相应信息的速度也越来越慢,再加上INI文件最大不能超过64KB,很快这种公用System.ini、Win.ini的管理方式就受到极大的挑战与质疑。

于是,人们在原有基础上提出了改进的方法。各个应用程序开始使用自己的INI文件来解决容量问题,比如Word 6.0就使用Word6.ini存放其配置信息。这样一来,INI文件大小的限制被很好解决了。但这样做又带来了新的麻烦,系统中出现了太多的INI文件,要想集中管理,而且搞清楚它们之间的关系变成了非常困难的事情。INI文件的另外—个致命缺陷仍然没有好的解决办法。由于INI文件是—个文本文件,所以任何用户都可以使用任意的文本编辑器来编辑它。如果用户在编辑INI文件时不小心修改了它的内容和格式,或者被不负责任的程序胡乱修改了其他应用程序所需要的数据,就有可能导致非常严重的后果。系统会出现许多莫名其妙的错误,死机、无法启动。因为这是系统结构性的弊端,所以在windows 95问世以前,大家都没有很好的解决方法。

在windows 3.x的升级版Windows 95出现时,微软决定把Windows NT中得到成功应用的注册表概念引入进来。其实质就是利用一个功能强大的注册表数据库来统—集中地管理系统硬件设施、软件配置等信息,从而方便管理并增强系统的稳定性

什么是注册表

注册表(Registry)是一个什么样的表格呀?嘿嘿!傻了吧。注册表它不是一个什么表格,而是Windows的一个内部数据库,是一个巨大的树状分层的数据库,它是微软专门为其32位操作系统(如Windows NT、Windows 98等)设计的一个系统管理数据库。

注册表记录了用户安装在机器上的软件和每个程序的相互关联关系;记录了计算机的硬件配置,包括自动配置的即插即用的设备和已有的各种设备。

注册表中存放着各种参数,直接控制着 Windows 的启动、硬件驱动程序的装载以及一些 Windows 应用程序的运行,从而在整个系统中起着核心作用。它包括:

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

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

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

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

总的来说,注册表实际上就是一个以层次结构保存和检索的复杂的数据库,它包含了应用程序和系统软硬件的全部配置、初始化信息以及其他重要数据。从一般用户的角度看,注册表系统由注册表数据库和注册表编辑器两部分组成。

注册表编辑器(Regedit.exe)是一个专门用来编辑注册表的程序,没有它我们根本无法进行注册表的基本的浏览、编辑和修改。

注册表作用

注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用。 这些作用包括了软、硬件的相关配置和状态信息,比如注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。

具体来说,在启动Windows时,Registry会对照已有硬件配置数据,检测新的硬件信息;系统内核从Resistry中选取信息,包括要装入什么设备驱动程序,以及依什么次序装入,内核传送回它自身的信息,例如版权号等;同时设备驱动程序也向Registry传送数据,并从Registry接收装入和配置参数,一个好的设备驱动程序会告诉Resistry它在使用什么系统资源,例如硬件中断或DMA通道等,另外,设备驱动程序还要报告所发现的配置数据;为应用程序或硬件的运行提供增加新的配置数据的服务。配合INI文件兼容16位Windows应用程序,当安装—个基于Windows 3.x的应用程序时,应用程序的安装程序Setup像在windows中—样创建它自己的INI文件或在Win.ini和System.ini文件中创建入口;同时windows还提供了大量其他接口,允许用户修改系统配置数据,例如控制面板、设置程序等。

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

注册表与INI文件

INI文件是早期Windows 3.X系统下对系统软件和硬件进行配置的文件,主要包括了System.ini和Win.ini,在其中保存了登录硬件和软件的各种初始化信息,以便系统建立符合要求的工作环境。因为每一个设备或者应用程序都可以建立自己的INI文件,所以造成INI文件众多,为INI文件的管理增加了难度,特别是其配置都是采用局域化的方式,因此要在网络上实现远程访问几乎是不可能的。

为了克服上述问题,从Windows95起引进了注册表。为了保持Windows系统的向下兼容性,Windows9x中仍然保留了INI文件。在形式上,注册表与INI文件的区别主要有以下几点:

1、注册表采用的是二进制数据,INI文件是简单的文本形式;显然INI文件能够被众多文本编辑器所修改,所以 用起来很方便,但稳固性却由此丧失掉了,再加上文本组成的数据本身在组成更高级的数据结构方面有缺陷,许多在数据库中很容易实现的功能,在这里就变得相当麻烦了,反观二进制的方式由于必须经由专门的注册表编辑软件才能 够查询或修改信息,相对就更加安全可靠。

2、注册表支持子关键字,各级子关键字都有自己的“键值”,INI文件支持小节以及小节中的设置行参数;

3、注册表支持键下的子键,而INI文件不允许小节中再有小节;注册表中每个键都可以包括子键,从而形成目录树的结构以方便使用, 而INI文件却无法支持小节之间的嵌套,也就是说小节与小节之间都只能是平 行的关系,非常不利于信息的表达。

4、注册表的键值项可以包含可执行代码,而在INI文件中设置项只是简单的字符串;

5、注册表可以包含多拥护设置,而INI文件却不能。在Windows 3.x时 代,我们几乎没有办法在同一台计算机上实现有个性的多用户使用,而到了 windows 9x以后,这样的多用户情形就变得非常普遍了

从功能上来说,注册表相对于INI文件具有以下优点:

1、注册表允许对软硬件和配置参数进行跟踪配置,以更好的适应软硬件;

2、注册表中登录的硬件数据可以用来支持即插即用特性;通常是在安装时进行这种检测的,但windows 98启动或原有配置改变时, 也要进行这种检测。如安装—一个新硬件时,Windows 98将检查注册表,以便确 定哪些资源已被占用,这样就可以避免新设备与原有设备之间的资源冲突。

3、注册表中的配置数据由于可以灵活的改变,因此可以更好的适应网络发展。管理人员和用户可以在网络上检查系统的配置和设置, 使得远程管理能够得以实现

注册表文件

Windows操作系统是由许多文件组成的,注册表也不例外,对于Windows 9x系统,注册表底层是由System.dat和User.dat两个文件组成的。它们是二进制文件,不能用文本编辑器查看。它们一般存放于Windows目录下,具有隐含、系统、只读属性。

System.dat包含了计算机特定的配置数据,User.dat包含了用户特定的数据。User.dat文件的位置在以某个用户名登录时,其位于C:\u29992户名目录下,系统同时在C:目录下保留了一个缺省的User.dat文件,以备新用户使用。

另外一个文件Config.pol影响着注册表中用户看到的设置,但其并不真正是注册表的一部分。

Windows NT/2000/XP中的注册表文件在多数情况下存放于%SystemRoots%文件夹中(%SystemRoot%指系统根目录)。其中包括Default、Sam、security、Software、System和以log、sav为扩展名的同名文件。而每个计算机用户的用户配置文件信息(包括Ntuser.dat和Ntuser.dat.log)的位置在Windows NT中是%SystemRoot%,比如用户public的Ntuser.dat文件就存放于C:。Windows 2000则取决于是全新安装还是从windows 95/98或windows NT升级安装。

在全新安装以及从Windows 95/98升级安装的情况下,Ntuser.dar和Ntuset.dar.log文件存储在%SystemDriye%and Settings文件夹中。

在从 Windows NT升级的安装中,Ntuser.dat和Ntuser.dat.log文件存储在%SystemRoot%文件夹中。

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

注册表文件

①、注册表:是一个树状分层的数据库。从物理上讲,它是System.dat和User.dat两个文件;从逻辑上讲,它是用户在注册表编辑器中看到的配置数据。

②、HKEY :“根键”。Windows98将注册表分为六个部分,并称之为 HKEY_name,它意味着某一键的句柄。

③、key(键):它包含了附加的文件夹和一个或多个值。

④、subkey(子键):在某一个键(父键)下面出现的键(了键)。

⑤、branch(分支):代表一个特定的子键及其所包含的一切。一个分支可以从每个注册表的顶端开始,但通常用以说明一个键和其所有内容。

⑥、value entry(值项):带有一个名称和一个值的有序值。每个键都可包含任何数量的值项。每个值项均由三部分组成:名称,数据类型,数据。

★ 名称:不包括反斜杠的字符、数字、代表符、空格的任意组合。同一键中不可有相同的名称。

★ 数据类型:包括字符串、二进制、双字三种。

字符串:如“Hello World”,是一串文字或词组。注册表总是在引号内显示字符串。

二进制:如 F03D990000BC ,是没有限制的二进制数值,用16进制显示。

双 字:如 D1234567 ,以8位16进制数表示的数。

★ 数据: 值项的具体值,它可以占用到64KB。

⑦、 Default(缺省值):每一个键至少包括一个值项,称为缺省值(Default),它总是一个字串

注册表编辑器

注册表本身就是一个大数据库,必须要有专门的编辑器才能打开它,同时注册表又很脆弱,它的一点问题都可能导致系统的崩溃,所以用好注册表编辑器浏览、修改注册表就成了一门基本功,这对提高使用注册表的水平是必不可少的。

微软为windows操作系统提供了两个注册表编辑器,一个是Regedit.exe,在Windows 95/98/Me/NT/2000中使用;另—个是Regedt32.exe,是一个纯32位的程序,只在Windows NT/2000中使用。

这两种windows自带的注册表编辑器各有所长。Regedit.exe的显示界面更符合人们的使用习惯,搜索功能也比较强大;而Regedt32.exe支持的键值数据类型更多,功能也更完善。

当windows操作系统升级到Windows XP的时候,这两个程序仍然存在,但实际上它们已经结合各自的长处合二为一了。这个新的注册表编辑器结合了Regedit.exe浏览器的显示界面、强大的搜索功能和Regedt32.exe提供的注册表权限控制两方面的优势

注册表的备份与恢复

注册表是系统的重要数据库,如果它出现错误,轻者造成系统启动错误或软件不能使用,重者造成系统整个瘫痪。因此,定期维护、备份注册表是您应养成的一个良好习惯。何时需要备份注册表呢?并无一准确的要求。但一般应在下述情况下进行:

①、定期备份:根据您使用机器的情况,一般选择一周、一月或多少天进行一次,以备系统出错时能恢复最近的一个注册表。

②、增加硬件:当您安装一个新硬件时,有可能它的驱动程序会与系统不兼容,造成系统瘫痪,因此应事先备份注册表。

③、安装软件:当您要安装一个来历不明的软件或未使用过的软件时,有可能它本身的缺陷或它与系统中的其他软件冲突,造成系统瘫痪。

Windows98 系统中自带了注册表备份程序,它完全工作在后台,每日定期备份注册表。Windows98 提供了该程序的两种版本,一种是Windows 版本的 Scanregw.exe,该程序检查注册表的错误但不修复错误,它判断是否需要优化注册表但不完成优化操作,它拷贝注册表文件到C:目录下的CAB文件中,这是一个隐含的文件夹,第一个备份的文件名为:RB000.CAB,第二个文件名为:RB001.CAB,依次类推。该文件夹中可能包含十多个其他的配置文件,这些文件是在一个设置程序使用更高的版本更新时,系统拷贝到该文件夹中的。每一个CAB文件内包含四个文件:System.dat, System.ini, User.dat, Win.ini。用户可以增加其他的文件到CAB文件中。

系统默认保留五个备份文件,用户可以在Scanreg.ini文件中修改 MaxBackupCopies(最大备份数)的值。另一种是DOS版本的Scanreg.exe,如果Scanregw.exe检测到一个错误或者必须优化注册表,则其提示用户重新启动计算机,DOS版本的Scanreg.exe则尝试修复注册表。

恢复注册表:不能用Scanregw.exe恢复注册表备份,而必须使用实模式的Scanreg.exe,该程序位于C:目录下。将系统启动到MS-DOS方式,键入 Scanreg/restore后回车,然后从列出的备份表中选择一个较近的备份,系统会重新启动,并使用恢复的注册表