Windows始终有一快菜鸟的禁区,那就是注册表。Windows将其运行时所需的配置信息存储在以树状格式组织的数据库(注册表)中,只要知道设置对应的注册表位置,就能对系统中几乎所有的设置进行修改。但微软官方对于注册表的资料实在有限,菜鸟对于注册表操作就更感觉无从下手了,
从零讲起!走出注册表应用的迷雾( 上)
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本身就提供了直观的修改方法。如果同样能达到目的的,又何必舍近求远呢?很多网站提供的技巧中都包含此类“伪技巧”。有一个简单的识别方法:在网上搜索到了注册表的修改位置后,打开“注册表编辑器”检查这个注册表位置中对应的选项键值是否存在,如果不存在需要新建则多数是真的,而如果已经存在了,则很有可能在系统中已经提供了相应的设置功能。
{ad}三个疑问让你认清注册表的真面目
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(双字节)值等。
小提示:上面的描述方法较为规范,平时我们还习惯将“子键”称为“分支”,而将“键值项”简称为“项”,这些称谓没有本质区别,只是叫法习惯不同罢了。
网友评论