修改注册表的方法
切记在修改之前,一定要备份注册表。
一.用windows的注册表修改器--regedit.exe
方法是在windows的左下角开始菜单里,点击运行,然后键入regedit,
回车即可。你可以在打开的修改器里查找所需要修改的注册表修改
项。比如要禁止“开始”菜单里的查找功能,我们知道修改的内容
为:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\P
olicies\Explorer,在右边的窗口中新建一个DWORD值"NoFind",并设
值为1.(查阅本手册即可找到)。那么我们打开注册表修改器,可以
看到有HKEY_CURRENT_USER这个根键,左边还有一个"+"号,点击"+"号
展开下面的目录树,找到Software,再展开找Microsoft,这样一层一层
地展开,直到找到Explorer项,看右边的窗口,你会发现有不少的键
值,恭喜你,你快成功了。然后在右边的窗口中单击鼠标右键,选择
新建DWORD值,输入NoFind,注意大小写,你会发现右边窗口中多了一
个名为NoFind的键名,OK,我们给它赋值,在NoFind上双击,然后在弹
出的窗口中将原来默认的0改成1,最后,重新启动计算机后,你会发
现开始菜单里的“查找”消失了,如果你想把它改回来,那么按上面
的方法,把1改成0,然后重新启动就可以了。是不是很简单?其他的修
改也差不多了,关键是要找到修改的内容,这就是本手册所提供的强
大功能了。呵呵,相信能给你带来很大的帮助。
二.用专门的修改软件
如果你很懒,不想知道究竟要修改什么内容。那么就用专门的注册表
修改软件了,比较有名气的是“超级兔子魔法”,还有“windows优化
大师”,在这里评价一下,windows优化大师名字响,可是不好用。我
本人比较喜欢的是另外一个叫“注册终结者”的修改器,主要是界面
友好,功能多而不容易出错。现在随着winXP的推出,各种修改器也随
之更新,可是功能还有待改进。现在新出的“神奇注册表”修改器,
可以修改winXP等,大家可以试试看。这些修改器都很容易上手,修改
起来很方便。不过你如果想深入学习注册表,最好还是手动修改了,
不然你学不到多少东西的了。
三.手工写.reg注册表文件
这是修改注册表的高级技巧了.有没有试过自己写注册表文件?不用任
何修改器?直接把写好的注册表文件——.reg倒入注册表?呵呵,这
项技巧并不需要每个人都知道了,你只要知道上面的两个就可以了。
当然,如果你是电脑迷,我们赞成深入学习。
现在我们来看看.reg文件的结构如何。
.reg文件的标准格式如下:
REGEDIT4
注意请不要乱修改注册表 否则你的系统就完了
[路径] (注意用大小写)
"键名"="键值" (针对字符串型键值)
"键名"=hex:键值 (针对二进制型键值)
"键名"=dword:键值 (针对DWORD键值)
括号里面的内容为本人的注释,写文件的时候就不需要那些小括号
了,其他上面所列的都必须包括。注意引号输入时不能用中文输入的
引号,必须用英文的引号,否则会出错。
那么,怎么写.reg文件呢?我们需要一个文本编辑器,用windows的记
事本就可以了。单击鼠标右键,选择新建文本文档,然后在生成的文
本文件里输入上面规格的内容就可以了,最后,选择另存为,输入你
想要的文件名+.reg保存即可。比如你要生成test.reg,输入test.reg
保存即可,你可以看到生成了一个带图标的test.reg.双击运行这个
test.reg文件就能相应的修改注册表了,系统会提示“是否导入注册
表”之类的信息,确定就可以了。OK,我们可以手动写注册表了,是不
是感觉很酷?
先别急,我们来看看一个标准范例,这是从注册表里面导出来的,大
家慢慢学习,跟着模仿一下就能写出自己的.reg文件了。
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
Policies\Explorer]
"NoRun"=dword:00000000
"NoRecentDocsMenu"=hex:01,00,00,00
"NoFavoritesMenu"=dword:00000000
"user"="sundrink"
大家可以看到,dword是16进制,hex是二进制,字符串则可以直接赋
值。只要将上面的内容复制保存到文本文档里,然后另存为你想要
的.reg文件运行就可以了。呵呵,原来也不是很难嘛,耐心一点就可
以了。当然,你要模仿,要自己动手写.reg文件,用记事本就可以
了。
说多两句,为什么要手写注册表?因为有时候我们会碰到一台锁定
regedit的机子,有什么办法解开呢?呵呵,如果你会手写注册表文件
的话,那很简单了......大家发挥想象吧!用不了很长时间的。
最后在文章结尾,提醒大家,注册表修改可不是闹着玩的,其中有些
键值是不能随便改的,因为如果你没有备份,而又不知道怎么改回来
的话,那就麻烦了,我也帮不了你。所以奉劝各位在修改注册表之前
一定要记得备份,切记!
通过修改注册表我们可以实现一些特殊的功能,但是注册表又是十分脆弱的,一个不小心就会出现错误。那么我们怎么样来修改注册表呢?我总结为以下几种方法:
1.软件修改(安全)
通过一些专门的修改工具来修改注册表,比如:MagicSet、TweakUI、WinHacker等等。其实控制面板就是一个这样的工具,只不过功能简单一些。
2.间接修改(比较安全)
将要修改的写入一个.reg文件中,然后导入注册表中。.reg文件的基本格式为:
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Super Rabbit\MagicSet]
"@"="Super Rabbit Magic Set For Windows 98 V2.92"
"a"=dword:00000001
"b"=hex:02,05,00,00
……
[HKEY_LOCAL_MACHINE\Software\SCC\QuickViewer]
……
第一行为“REGEDIT4”,必须大写。
第二行为空行。
第三行使用[]括起子键分支,其中HKEY_LOCAL_MACHINE\Software\Super Rabbit\MagicSet就是一个子键分支。
第四、五、六行是该子键下的设置数据。其中@表示注册表编辑器右窗格中的"默认"键。
以下类似。
这样做的好处是可以避免错误的写入或删除等操作,但是要求用户了解注册表的内部结构和.reg文件的格式。
3.直接修改(最不安全,但最直接有效)
就是通过注册表编辑器直接的来修改注册表的键值数据项,这样做会避免在注册表中留下垃圾(虽然都很小,但越来越多会拖慢系统速度),但是要求用户有一定的注册表知识,熟悉注册表内部结构而且一定要小心谨慎。
注册表的内部组织结构及相互关系
计算机配置和缺省用户设置的注册表数据在Windows NT中被保存在下面这五个文件中:DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。而 Windows9x/Me/2000将所有注册表文件存入2个文件中:System.dat和User.dat。它们是二进制文件,不能用文本编辑器查看。它们存在于Windows目录下,具有隐含、系统、只读属性。 System.dat包含了计算机特定的配置数据,User.dat包含了用户特定的数据。User.dat文件的位置在以某个用户名登录时,其位于C: \Windows\profiles\用户名目录下,系统同时在C:\Windows目录下保留了一个缺省的User.dat文件,以备新用户使用。内部组织结构是一个类似于目录管理的树状分层的结构。
WINDOWS的注册表有六大根键,相当于一个硬盘被分成了六个分区。
在“运行”对话框中输入RegEdit,然后单击“确定”按钮,则可以运行注册表编辑器。
左窗格显示的是注册表的根键,这样的根键共六个。这些根键都是大写的,并以HKEY_为前缀,这种命令约定是以Win32 API的Registry函数的关键字的符号变量为基础的。
虽然在注册表中,六个根键看上去处于一种并列的地位,彼此毫无关系。但事实上,HKEY_CLASSES_ROOT和 HKEY_CURRENT_CONFIG中存放的信息都是HKEY_LOCAL_MACHINE中存放的信息的一部分,而 HKEY_CURRENT_USER中存放的信息只是HKEY_USERS存放的信息的一部分。HKEY_LOCAL_MACHINE包括 HKEY_CLASSES_ROOT和HKEY_CURRENT_USER中所有的信息。在每次系统启动后,系统就映射出 HKEY_CURRENT_USER中的信息,使得用户可以查看和编辑其中的信息。
实际上,HKEY_LOCAL_MACHINE\ SOFTWARE\Classes就是HKEY_CLASSES_ROOT,为了用户便于查看和编辑,系统专门把它作为一个根键。同理, HKEY_CURRENT_CONFIG\SY-STEM\Current Control就是HKEY_LOCAL_MACHINE\SYSTEM\Current Control。
HKEY_USERS中保存了默认用户和当前登录用户的用户信息。HKEY_CURRENT_USER中保存了当前登录用户的用户信息。
HKEY_DYN_DATA保存了系统运行时的动态数据,它反映出系统的当前状态,在每次运行时都是不一样的,即便是在同一台机器上。
根据上面的分析,注册表中的信息可以分为HKEY_LOCAL_MACHINE和HKEY_USERS两大类,这两大类的详细内容请看后面的介绍。
六大根键的作用
注册表采用“关键字”及其“键值”来描述登录项及其数据。所有的关键字都是以“HKEY”作为前缀开头。打个比喻来说,关键字更象Windows9X下的浏览器里的目录下的文件,每个文件都会有自己特有的内容和属性。我们可以在注册表编辑器下很方便地添加、修改、查询和删除注册表的每一个关键字。关键字可以分为两类:一类是由系统定义,一般叫做“预定义关键字”;另一类是由应用程序定义的,根据应用软件的不同,登录项也就不同。在注册表中,所有的数据都是通过一种树状结构以键和子键的方式组织起来,十分类似于目录结构。每个键都包含了一组特定的信息,每个键的键名都是和它所包含的信息相关的。如果这个键包含子键,则在注册表编辑器窗口中代表这个键的文件夹的左边将有“+”符号,以表示在这个文件夹中有更多的内容。如果这个文件夹被用户打开了,那么这个“+”就会变成“-”。 下面我们对系统预定义的六大根键简单地介绍一下。
1.HKEY_USERS
该根键保存了存放在本地计算机口令列表中的用户标识和密码列表,即用户设置。每个用户的预配置信息都存储在HKEY_USERS根键中。 HKEY_USERS是远程计算机中访问的根键之一。其内容取决于计算机是否激活了用户配置文件,若未激活用户配置文件,则可以看到称为.DEFAULT 的单一子键,该子键包括和所有用户相关的各种设置,并且和\Windows下的USER.DAT文件相配合。若激活了用户配置文件并且正确地执行了登录,则还有一个“用户名”的子键,该用户名为用户登录的名称。
2.HKEY_CURRENT_USER
该根键包含本地工作站中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码(注:此密码在输入时是隐藏的)。用户登录Windows 98时,其信息从HKEY_USERS中相应的项拷贝到HKEY_CURRENT_USER中。HKEY_CURRENT_USER下面有7个子关键字。其中除RemoteAccess”外,其余6个都为系统预定义。
AppEvents 这个子键里登记已注册的各种应用事件。
ControlPanel 它里面涉及到控制面板设置有关的内容。
InstallLocationsMRU windows安装路径的有关信息。
Keyboardlayout 关于键盘设置的信息。
Network 有关网络设置的信息。
RemoteAccess 安装IE 时建立的子关键字,包含该应用程序的有关信息。
Software 软件的有关信息。
3.HKEY_CURRENT_CONFIG
该根键存放着定义当前用户桌面配置(如显示器等)的数据,最后使用的文档列表(MRU)和其他有关当前用户的Windows 98中文版的安装的信息。
4.HKEY_CLASSES_ROOT
该键由多个子键组成,具体可分为两种:一种是已经注册的各类文件的扩展名,另一种是各种文件类型的有关信息。左栏中的子键就是各种已经注册的文件扩展名。注册表内己经登记的文件扩展名中,有系统默认和应用程序自定义的扩展名。应用程序只有把自定义的扩展名在注册表中登记,系统才能识别和关联使用有关的文档,但只有经过注册的扩展名,系统才能自动关联。根据在Windows 98中文版中安装的应用程序的扩展名,该根键指明其文件类型的名称。
在第一次安装Windows 98中文版时,RTF(Rich Text Format)文件与写字板(WordPad)联系起来,但在以后安装了中文Word 6.0后,双击一个RTF文件时,将自动激活Word。存放在SYSTEM.DAT中的HKEY_CLASSES_ROOT,将替代WIN.INI文件中的[Extensions]小节中的设置项,它把应用程序与文件扩展名联系起来,它也替代了Windows 3.x中的Reg.dat文件中的相似的设置项。
5.HKEY_LOCAL_MACHINE
注册表的核心,计算机的各种硬件和软件的配置均存在于此。它包括以下八个部分:Config配置、Driver驱动程序、Enum即插即用、Hardware硬件、 Network网络、Security安全、Software软件、System系统。每部分中又包括许多子键。该根键存放本地计算机硬件数据,此根键下的子关键字包括在SYSTEM.DAT中,用来提供HKEY_LOCAL_MACHINE所需的信息,或者在远程计算机中可访问的一组键中。该根键中的许多子键与System.ini文件中设置项类似。
6.HKEY_DYN_DATA
该根键存放了系统在运行时动态数据,此数据在每次显示时都是变化的,因此,此根键下的信息没有放在注册表中。