编织人生论坛

 找回密码
 注册会员

QQ登录

只需一步,快速开始

5118 人签到
查看: 919|回复: 2

什么是注册表?

热度: 0 [复制链接]

参加活动:0

组织活动:0

发表于 2006-12-6 11:30:46 | 显示全部楼层 |阅读模式
      注册表(Registry)是微软公司从Windows95系统开始(至目前最新Win2000系统依然使用的是它),引入用于代替原先Win32系统里.ini文件,管理配置系统运行参数的一个全新的核心数据库。在这个数据库里整合集成了全部系统和应用程序的初始化信息;其中包含了硬件设备的说明、相互关联的应用程序与文档文件、窗口显示方式、网络连接参数、甚至有关系到计算机安全的网络享设置 。它与老的win32系统里的ini文件相比,具有方便管理,安全性较高、适于网络操作等特点。
注册表的特点有:
1.注册表允许对硬件、系统参数、应用程序和设备驱动程序进行跟踪配置,这使得修改某些设置后不用重新启动成为可能。
2.注册表中登录的硬件部分数据可以支持高版本Windows的即插即用特性。当Windows检测到机器上的新设备时,就把有关数据保存到注册表中,另外,还可以避免新设备与原有设备之间的资源冲突。
3.管理人员和用户通过注册表可以在网络上检查系统的配置和设置,使得远程管理得以实现。

用户如果需要使用注册表编辑器,可以在“运行”对话框内输入Regedt32或Regedit即可打开注册表编辑器,或者在“命令提示符”中执行Regedt32.exe也可以进入注册表编辑器
zan

参加活动:0

组织活动:0

 楼主| 发表于 2006-12-6 11:39:08 | 显示全部楼层
Windows始终有一快菜鸟的禁区,那就是注册表。Windows将其运行时所需的配置信息存储在以树状格式组织的数据库(注册表)中,只要知道设置对应的注册表位置,就能对系统中几乎所有的设置进行修改。但微软官方对于注册表的资料实在有限,菜鸟对于注册表操作就更感觉无从下手了,就像在黑暗中行走。

  四盏照明灯带你走出注册表误区

  误区1.普通用户不应该修改注册表

  微软对于注册表的态度一直有些隐瞒,甚至在帮助文件中都写道:“尽管可以用注册表编辑器查看和修改注册表,但通常不比这样做,因为更改不正确可能会损坏系统。”微软希望所有的系统设置都能够在其设计的系统管理工具中进行,而不是修改注册表,正因为微软自身都对用户修改注册表抱不置可否的态度,所以大多数用户,始终对注册表有一种敬畏心理。

  照明灯:实际只要掌握了注册表的基本知识和“注册表编辑器”使用方法, 就能进行修改。尽管微软提供的资料不多,但从Google上搜索相关的关键字(如“修改注册表+去掉快捷方式小箭头”)就能找到相应的注册表位置。

  误区2.注册表=注册表编辑器

  这可能是最让混淆的概念了,很多人都认为“注册表”和“注册表编辑器”是一种东西。

  菜鸟A:“什么是Windows注册表呢?”

  菜鸟B:“这个我知道,不就是regedit.exe吗?依次点击“开始-运行”,输入regedit.exe打开的就是注册表啦!”

  菜鸟A:“哦,原来是这样。不过用regedt32.exe不是也能改注册表吗?难道有2个注册表?”

  照明灯:注册表是一个保存系统、软件设置数据的数据库,而“注册表编辑器”只是对于整个系统的读取/修改工具。这种概念的错误就好比你将记录营业额的Excel表格于打开此表格的Excel软件都称作“营业额表格”。在Windows 9X/2000中,regedit.exe和regedt32.exe是两个程序,其中的regedt32.exe无法进行REG文件的导入,也无法在Dos(16位状态)下运行;而在Windows XP中,使用regedit.exe和regedt32.exe打开的其实是同一程序,regedt32.exe的功能只不过是调用regedit.exe。

  误区3.系统的永动机----无限提升系统性能

  刚才说道在注册表中存放了系统的软硬件设置数据,也就是说,只要修改得当,能在一定程度提升系统性能,有些朋友刚学会修改注册表,就以为修改注册表可以无限的提升系统性能,并且因此频繁修改注册表。

  照明灯:适当的修改注册表可以提升系统性能,但这种提升是以硬件为基础的,只有当操作系统本身的设置相对硬件系统来说比较保守时,我们才有可能通过修改相关设置来发掘硬件本身潜能,试系统得到优化。但如果硬件本身就不怎么样,通过修改注册表来提升系统性能便只能成为一种奢望。如果真能这样大家就不必掏银子升级旧机器了,只需改改注册表就行了。

  误区4.舍近求远

  先来看一个例子:在Windows XP中,默认启动的“分组相似任务栏按钮”功能可以使原来日益拥挤的任务栏变的宽敞起来,可是用惯了Windows 98/2000的用户可能会觉得不习惯,想要禁用这个功能,有些朋友就会自然的想到寻找注册表中的修改位置,最后好不容易遭到了注册表中禁用此功能的方法:打开“注册表编辑器”,找到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,将其下的“TaskbarGlomming”键值改为0来达到目的。其实系统本身已经提供了相应的设置方法,只需要右键单击任务栏空白处,并选择“属性”,然后在“任务栏属性”窗口中去除“分组相似任务栏按钮”的勾选即可。

  照明灯:从这个例子就可以看出,其实在注册表中的绝大多数选项,Windows本身就提供了直观的修改方法。如果同样能达到目的的,又何必舍近求远呢?很多网站提供的技巧中都包含此类“伪技巧”。有一个简单的识别方法:在网上搜索到了注册表的修改位置后,打开“注册表编辑器”检查这个注册表位置中对应的选项键值是否存在,如果不存在需要新建则多数是真的,而如果已经存在了,则很有可能在系统中已经提供了相应的设置功能。
回复 支持 反对

使用道具 举报

参加活动:0

组织活动:0

 楼主| 发表于 2006-12-6 11:42:15 | 显示全部楼层
三个疑问让你认清注册表的真面目

  1.为什么一定要使用注册表

  或许你会问,注册表既复杂,修改不当又容易引发系统故障,而Dos或早期的Windows没有注册表却也能正常工作,那么现在的Windows一定需要注册表呢?

  DOS是一个纯命令操作平台,没有图形界面,一切输入均通过命令的方式来解决。要打开文本文件1.txt需要输入“edit 1.txt”命令才行,也就是说“要打开什么文件”,“用什么程序打开此文件”这些问题都必须由你来告诉计算机。而现在的Windows系统中,要打开1.txt的属性只需在“资源管理器”双击此文件即可,你只要指定要打开的文件,计算机就会根据你要打开的文件类型自动选择合适的应用程序进行操作,这种智能的打开方法就是由注册表中保存的“文件关联”数据(出了“文件关联”外,注册表还存放了其他很多重要的设置数据)。这种发展是由计算机的复杂性决定,在DOS时代可能无需这种机制,但如果现在Windows没有“文件关联”,那成千上万种文件类型一定会让你看眼花。

  2.注册表的“妈妈”是谁

  Windows设计之初,并没有采用注册表这种方式来存放软硬件配置信息,而是使用了两个扩展名为INI的文件(system.ini和win.ini)。对于INI文件大家应该很熟悉了,很多“绿色软件”都声称其不在注册表中写入任何数据,但大多会在其安装目录下留下一个或几个INI文件。既然当初使用的是INI,为什么后来又改成注册表了呢?这是因为INI文件有一个致命的弱点就是大小不能超过64KB,随着软硬件功能的日益进步,其所需的配置数据体积也在不断膨胀,INI文件早已无法满足这种数据量的要求了。另外INI其实是依据某种定义规范的文本文件,编辑过程极易出错并由此导致系统故障,为了克服这些问题,在Windows 95及其后的版本中,Window系统都无一例外的采用了注册表机制,并将原来由多个INI组成的软硬件配置信息统一到了一起,形成一个数据库,那就是注册表。

  3.注册表的家在哪里

  既然注册表是一个数据库,那么这个数据库文件在那里呢?其实,难怪不少刚接触电脑的朋友误以为regedit.exe就是注册表,这是由于对注册表数据库的组成不清楚而造成的。Windows 98注册表的数据文件主要由System.dat和User.dat这两个文件组成,并保存在C:\Windows目录下,其中System.dat存储的是系统和硬件相关的配置,而User.dat则保存软件配置和用户配置,Windows 2000/XP注册表的数据文件主要存储在%Windir%\System32\config目录中的Default,Sam,Security,System,software和Userdiff等6个文件中,除此之外,还有部分数据保存在用户的配置文件目录中,比如Window 2000/XP中的Administrator的部分注册表数据就保存在C:\Documents and Settings\Administrator目录的Ntuser.dat文件中,所以只需要Administrator登陆系统后其目录下的NTUSER.DAT就不能被删除,因为它已经被加载到注册表中了。

  两个知识点理清错综复杂的注册表脉络

  1.查查注册表元素的身份证

  运行regedit.exe打开“注册表编辑器”,就能在其左侧看到注册表的分支结构,其中以文件夹方式表示的称为“键”,而在选中一个键后在窗口右侧显示的则称为“项”。在网上搜索到的修改教程中经常会提到“根键”,“主键”,“子键”,“键值项”,是什么意思呢?

  ①根键(Root Key)是指在注册表编辑器左侧以“HKEY”作为名称前缀的位置,因其位于注册表最项层被称为根键,如Windows XP的注册表中包括五大根键,分别为HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MacHINE,HKEY_USERS和HKEY_CURRENT_CONFIG。这些根键都可所写的,譬如HKEY_CLASSES_ROOT就可以简写为HKCR,其它的则以此类推。

  ②主键(Main Key)是指根键下面于根键最近的键,主键通常包括一个或多个子键或键值,如图中HKEY_LOCAL_MACHINE包括5个主键。

  ③子键(Sub Key)的位置是相对的,并不固定。某个键下面包含的另一个键则称它为前者的子键。但主键则不能称为根键的子键,这种以相对位置关系来命名的方式不能用于根键和主键。

  ④键值项(Value entry)是指显示在“注册表编辑器”右侧的项目,每个键值项包括名称,类型和数据三部分。键值项的名称可以由任意字符,数字,代表符和空格组成,但不能使用反斜杠。不同键值,主键和子键的键值项可以同名,但同一键中的键值项不能同名。键值项所定义的内容即为该键值项的值(即“键值”),其中最多能存放64KB的数据。值的数据类型可以是字符串,二进制值,DWord(双字节)值等。

  小提示:上面的描述方法较为规范,平时我们还习惯将“子键”称为“分支”,而将“键值项”简称为“项”,这些称谓没有本质区别,只是叫法习惯不同罢了。

  2.真正的根键只有两个

  Windows 98的注册表有6个键值,而Windows 2000/XP/2003系统的根键数则是5个,但这些根键中只有HKEY_LOCAL_MACHINE和HKEY_USERS是真正的注册表键,其它几个键值都是从这两个根键的某个分支映射出来的,相对于这两个根键深层分支的一个快捷方式或者别名,主要是为了方便用户操作。

  ⑴HKEY_LOCAL_MACHINE

  这个根键存储的是安装在当前计算机上的硬件和软件配置信息,比如硬件设备的驱动程序,特定软件设置和Windows系统安装配置等数据。这些信息对当前系统中的所有用户均保持一致。这个根键下面还有5个重要的主键,其中Software和System最为关键,平时对系统进行相关调整大多集中在这两个键上。

  ①Software子键:保存于这台电脑中安装的应用程序和相关的设置,许多应用程序都使用该键值保存特定设置。关于Windows的许多设置都存在于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion中。

  ②System子键:在这里精确的确定了Windows所装载的设备驱动程序和服务,以及当Windows启动时所使用的各种参数(如在网络上的计算机名称和当前硬件配置恩见)。

  ⑵HKEY_USERS

  HKEY_USERS包含有电脑特定用户的配置数据,Windows在此根键下的一个子键中为登陆该电脑的每个用户存储配置数据。如果电脑只有一个用户使用,那么所看到的就是单独一个子键,称为“.DEFAULT”

  而HKEY_USERS\S-1-5-21-1078081533-1202660629-1343024091-500(不同的电脑不一样)则是当前登陆用户的配置数据,其中S-1-5-21-1078081533-1202660629-1343024091-500就是这个目前登陆用户的SID,每一个网络上的用户都被域用户管理器分配了一个SID,每个SID是唯一的,所以它依赖于登陆用户,其分支数据是从用户配置文件的Ntuser.dat文件调出的。
回复 支持 反对

使用道具 举报

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

本版积分规则

share

QQ|论坛地图|家园地图|广告服务|手机版|小黑屋|Archiver|颜色表|编织人生 手工编织第一站 ( ICP12028468-2 )  

QQ800041369

GMT+8, 2016-12-5 23:08 , Processed in 0.220207 second(s), 19 queries , Memcache On.

Powered by Discuz! X3 Licensed

© 2001-2013 Comsenz Inc.

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