分类：电脑/网络-互联网
问题：有谁知道&quot;注册表&quot;这方面的知识?(如果能说好? 
回答：注册表里面所有的信息平时都是由windows自主管理的，也可以通过软件或手工修改。注册表里面有很多系统的重要信息，包括外设，驱动程序，软件，用户记录等等，注册表在很大程度上“指挥”电脑怎样工作。  注册表有很大的用处，功能非常强大，是windows的核心。通过修改注册表，我们可以对系统进行限制、优化等等。比如我们不想让别人用“开始”菜单，我们可以修改注册表来达到目的。除此之外，还有很多了，注册表修改快速入门  在这里提醒大家一句，如果你没有把握，切记在修改之前，一定要备份注册表。 一.用windows的注册表修改器--regedit.exe方法是在windows的左下角开始菜单里，点击运行，然后键入regedit,回车即可。你可以在打开的修改器里查找所需要修改的注册表修改项。比如要禁止“开始”菜单里的查找功能，我们知道修改的内容为：HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\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保存即可。比如你要生成 g,输入 g保存即可，你可以看到生成了一个带图标的 g.双击运行这个 g文件就能相应的修改注册表了，系统会提示“是否导入注册表”之类的信息，确定就可以了。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的机子，有什么办法解开呢？呵呵，如果你会手写注册表文件的话，那很简单了......大家发挥想象吧!用不了很长时间的。 从Windows 95开始，Microsoft在Windows中引入了注册表（英文为REGISTRY）的概念（实际上原来在Windows NT中已有此概念）。注册表是Windows 95及Windows 98的核心数据库，表中存放着各种参数，直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序运行的正常与否，如果该注册表由于某种原因受到了破坏，轻者使Windows的启动过程出现异常，重者可能会导致整个Windows系统的完全瘫痪。因此正确地认识、修改、及时地备份以及有问题时恢复注册表，对Windows用户来说就显得非常重要了。切记：在改动注册表前务必进行备份，以防不测。  而当Windows 98不能正常启动时，可在DOS方式下运行Scanreg/Restore，以恢复注册表。 如果你只是想修改系统设置，最好使用专门的工具软件；如果你确实要手工修改注册表，建议在修改前做好备份。如果注册表遭到破坏,Windows将不能正常运行,所以我们必须经常的备份注册表.(其实Windows在每次启动成功时都会备份注册表)。  常用的注册表备份方法和工具很多，大家可以根据个人选择一个。如利用注册表编辑器中的"导出注册表文件"即可导出一份扩展名为.REG的文件. 向大家推荐一个好用的备份工具--Windows光盘上:Other\Misc\ERU\ERU.EXE--紧急事故恢复工具(Emergency Recovery Utility). 如果光盘上没有，在我的网站上有，大家可以去下载。该工具小巧，功能却不错，很实用，可以备份 i、 i、 s、System.dat等所有的系统文件。使用方法很简单，运行ERU,选择一路径（默认是A盘）如：C：\ERD备份，以后如需恢复，则在DOS下进入C:\erd目录，运行ERD.EXE,就可完整恢复整个系统配制文件。一点说明，ERU.EXE是备份用的，而ERD则是还原的时候用的。  另外，谈一下整个windows系统备份。因为我们平时安装软件，不用的时候会删除，虽然现在软件基本能反删除，但总是有软件会留些垃圾下来的，所以时间一长，你的windows就越来越庞大了，整个系统的性能下降。  现在的备份软件很多，也很方便，如ghost等，所以还是根据自己的习惯选择。在windows下有两个简单的备份办法：  一是在windows下的dos窗口用xcopy命令，xcopy c:\windows\*.* c:\winbak/s/e/h/k/y/c,各参数意思大家用xcopy/？理解。这样你的系统就备份在winbak目录下了。注意：该命令需在windows的dos窗口下运行，因为你在纯dos下运行，xcopy或xcopy32将不支持长文件名和h参数下的拷贝隐含和系统文件。  二是打开资源管理器，选择菜单的“查看”→“选项”→“查看”选中“显示所有文件”，也就是说在资源管理器下能查看所有的文件（系统、隐含、只读、等）。好己完成一半了，然后进入windows目录，你会看到所有的文件，然后选定全部所有的文件（ctrl+A)，（是不是有人在笑，这招我早试过，不行），哈，当然这样你复制系统不到一半就会保护性中断，到底是什么原因导致复制中断呢？我们知道windows系统使用临时文件作为虚拟内存，明白了吧，关键在此，这文件是WIN386.SWP，刚才复制到这个文件中断了，下面就简单了，在windows下全选中后，找到WIN386.SWP文件，按住CTRL键同时，用鼠标点一下，结果是除了这文件外别的都选中。然后复制到事先建好一目录下。这样widnows系统备份结束，这是你比较两个目录大小不一样，没关系，因为你没复制WIN386.SWP，所以有差别，这是临时文件，不影响系统完整。下次你要重装系统时只要在纯dos下用ren 命令改两个目录名称就行了。另外有点要注意，我们没备份C盘根目录下的配制文件，最好备份一下，用ERU或手动。别看??羲羲盗艘淮蠖眩銎鹄矗饺戮徒饩觥Ｄ阃瓿杀阜莺笠欢ㄒ橹ひ幌拢蝗幻挥斜阜萃耆退蓝恕Ｑ橹し椒ǎ涸诖緿OS下用REN命令改目录名，如：ren windows win,ren winbak windows即可，这里假设winbak是你刚备份的目录。  本人推荐大家用第二种方法，这种方法简单，并且不容易出错，你以后再也不用重装系统了，第一次装好windows后，赶紧备份一个windows复本，这样会节省你的不少保贵时间。当然你要备份整个硬盘还是用专业的软件，如：ghost，不然速度慢。  下面就接触一下注册表，可以在“开始”菜单中，“运行”按钮，键入regedit就可打开注册表，再次强调一下，不要乱改，它是你windows的命根子，改之前一定要备份。 认 识 注 册 表六大根键的作用   在注册表中，所有的数据都是通过一种树状结构以键和子键的方式组织起来，十分类似于目录结构。每个键都包含了一组特定的信息，每个键的键名都是   和它所包含的信息相关的。如果这个键包含子键，则在注册表编辑器窗口中代表这个键的文件夹的左边将有“＋”符号，以表示在这个文件夹中有更多的内容。如果这个文件夹被用户打开了，那么这个“＋”就会变成“－”。 1.HKEY_USERS   该根键保存了存放在本地计算机口令列表中的用户标识和密码列表。每个用户的预配置信息都存储在 HKEY_USERS 根键中。 HKEY_USERS 是远程计算机中访问的根键之一。 2.HKEY_CURRENT_USER   该根键包含本地工作站中存放的当前登录的用户信息 , 包括用户登录用户名和暂存的密码 ( 注：此密码在输入时是隐藏的 ) 。用户登录 Windows 98 时，其信息从 HKEY_USERS 中相应的项拷贝到 HKEY_CURRENT_USER 中。3.HKEY_CURRENT_CONFIG   该根键存放着定义当前用户桌面配置 ( 如显示器等 ) 的数据 , 最后使用的文档列表（ MRU ）和其他有关当前用户的 Windows 98 中文版的安装的信息。4.HKEY_CLASSES_ROOT   包含注册的所有ole信息和文档类型，是从 hkey_local_machine\software\classes复制的。根据在 Windows 98 中文版中安装的应用程序的扩展名 , 该根键指明其文件类型的名称 。 5.HKEY_LOCAL_MACHINE   该根键存放本地计算机硬件数据 , 此根键下的子关键字包括在 SYSTEM.DAT 中 , 用来提供 HKEY_LOCAL_MACHINE 所需的信息 , 或者在远程计算机中可访问的一组键中。   该根键中的许多子键与  i 文件中设置项类似。6.HKEY_DYN_DATA   该根键存放了系统在运行时动态数据，此数据在每次显示时都是变化的，因此，此根键下的信息没有放在注册表中。认识键和子键 注册表通过键和子键来管理各种信息。但是，注册表中的所有信息是以各种形式的键值项数据保存下来。在注册表编辑器右窗格中，保存的都是键值项数据。这些键值项数据可分为如下三种类型： 1. 字符串值   在注册表中，字符串值一般用来表示文件的描述、硬件的标识等。通常它由字母和数字组成，最大长度不能超过 255 个字符。比如“ D:\pwin98\trident ”即为键值名“ a ”的键值，它是一种字符串值类型的。同样地，“ ba ”也为键值名“ MRUList ”的键值。通过键值名、键值就可以组成一种键值项数据，这就相当于  i 、  i 文件中小节下的设置行。其实，使用注册表编辑器将这些键值项数据导出后，其形式与 INI 文件中的设置行完全相同。 2. 二进制值  在注册表中，二进制值是没有长度限制的，可以是任意个字节长。在注册表编辑器中，二进制以十六进制的方式显示出来。比如键值名 Wizard 的键值“ 80 00 00 00 ”就是一个二进制。3. DWORD 值    DWORD 值是一个 32 位（ 4 个字节，即双字）长度的数值。在注册表编辑器中，您将发现系统会以十六进制的方式显示 DWORD 值。在编辑 DWORD 数值时，可以选择用十进制还是 16 进制的方式进行输入。  另外：对注册表信息的注册和修改,一般由以下几点实现:  安装Win9X时,由安装程序注册系统信息;  安装应用程序时,由安装程序注册该程序的配置信息;   添加新硬件时,由系统即插即用功能监测并注册的信息;   通过控制面板或属性对话框改变系统属性与设置而实现的信息变更;   通过注册表编辑器对信息进行手工修改.DOS下维护注册表的高级技巧杭州梁俊清      IT认证书库站长       现在随着电脑应用知识的普及，我想，很多朋友对WINDOWS注册表的修改已经有不少经验和心得。在图形界面下对注册表的维护和修改，就不必再提了，但有时候，我们可能会遇到更辣手的事情，如由于人为错误操作或者恶性病毒感染而使系统切底崩溃，不能进入WINDOWS图形界面时，我们对此是否只有重装这种方法呢？本文将就在DOS下面尽量挽救系统这方面作出阐述。一、 使用scanreg/restore  我想这种方法大家也比较熟悉了，只要在DOS界面下输入该命令，就可以在最近的5个注册表备份里恢复，如果幸运的话，系统就可以马上恢复。但，事实上，用这种方法有个致命的缺陷就是你只有最近5天的注册表备份可以选择。因为控制着自动备份的scanreg.exe只会在每天第一次启动电脑时备份，如果哪天你安装的程序或者对注册表的修改比较多，那么你的努力就大多白费了。这种方法就正如是眉毛胡子一起抓，正确和错误的都一起改掉，是否能为恢复系统帮上忙，总有一种听天由命的感觉。所以，笔者鼓励大家使用第二种方法。二、使用DOS界面的regedit.exe  如果把scanreg/restore比作是一刀切的话，这种方法更像是一次高明的外科手术，只一矢中的地针对病，把错误修复而完全不影响注册表的其他健康部分。这样，我们就能在最大限度上保留我们的工作成果了。使用regedit.exe对注册表实行局部修改的思路是：首先，把注册表里有嫌疑的分支导出；然后，使用edit对它进行分析和修改；最后，把健康的分支重新导入注册表里。好了，我们来看看整个过程的具体操作。1 导出注册表分支  在DOS下导出注册表分支的命令格式是：Regedit[/L:system] [/R:user] /E filename [regpath1]。/L：system是指定system.dat的路径，/R：user是指定user.dat的路径，如果不说明，系统就会在默认的路径下找；/E：是导出注册表分支的文件名，regpath1是要导出的注册表分支。比如，我们要导出默认注册表关于控制系统启动的分支到 g里，命令如下：regedit /e  g HKEY－LOCAL－MACHINE\Software\Microsoft\Windows\CurrentVersion\Run。2 对注册表进行分析、修改  在DOS下面只要运行edit就能对＊.reg文件进行编辑了，因为我们导出的注册表实际上就是文本文件。不过，要正确找出引起错误的地方并修改，需要我们平时对注册表积累的经验。下面，我们看一下它的基本结构，以使我们在对它的修改时可以有的放矢。  我们知道，注册表里面有6个主分支，其中容易引起致命错误而使WINDOWS不能正常启动的分支有：   [HKEY_LOCAL_MACHINE]，记录着本地机器的硬件配置以及安装的相应软件，特别是[HKEY－LOCAL－MACHINE\Enum\PCI]这个分支下面的主键值，一旦出错，WINDOWS往往不能启动。如[HKEY－LOCAL－MACHINE\Enum\PCI\VEN_8086＆DEV－7111＆SUBSYS_00000000＆REV－01\BUS_00＆DEV_07＆FUNC－01]记录的是硬盘控制器的详细信息，下面的Logconfig记录着它的各种参数；[HKEY_LOCAL－MACHINE\Enum\PCI\VEN－1002＆DEV－4C42＆SUBSYS_4C421071＆REV－DC\000800]记录的则是显示卡的重要资料和参数，一旦这里出错，往往会导致WINDOWS在启动时黑屏，然后死掉。  另外还有[HKEY－LOCAL－M ACHINE\Software\Microsoft\Windows\CurrentVersion]里记录着WINDOWS当前版本的信息以及启动时执行的程序等，这是病毒最爱攻击和修改的地方。  至于还有[HKEY－CLASS－ROOT]是记录文件种类及其关联信息的，[HKEY－CURRENT－USER]里记录着当前用户的各种信息，包括登陆的密码和各方面的设置等，这些一般不会引起WINDOWS的致命错误，这里也不再详细分析了。  当我们对这些键值分析和修改时，如果碰到什么不清处的地方，可以通过第1点的导出注册表方法，把一些备份注册表的相应分支导出，进行比较。WINDOWS的注册表备份都放在C:\windows\sysbackup里面，如我们要导出第一个注册表备份的[HKEY_LOCAL_MACHINE]分支，那么我们可以先进入该目录，然后键入命令：extract /e  b ＊.＊，先把system.dat和user.dat解压出来，再键入命令：regedit /L:system.dat /R:user.dat /e  g HKEY－LOCAL－MACHINE。 笔者在这里提醒一下，这是一个很好的解决问题的方法，再用上一些文件比较软件可以很快的找出错误的，请诸位慢慢体会。   3 把修改好的注册表分支重新导入  命令的格式为：regedit /L:system /R:user  g  g。我们一般都要修改默认的注册表文件，所以在实际使用中只需键入：regedit  g就行了。      好了，讲了这么久，我们看看一个具体的案例。  学院机房里的一台机器在重新启动后，无论用正常模式或者安全模式都不能进入WINDOWS界面，表现为启动过程中硬盘突然不读。用SCANDISK检查过硬盘，并没有发现问题。在启动过程中选择生成BOOTLOG.TXT文件，发现启动到硬盘控制器后就断掉了。本来想用scanreg/restore恢复备份的注册表，可是该机器为了加快启动，并没有自动备份。于是，用regedit把[HKEY－LOCAL－MACHINE\Enum\PCI]分支导出，键入：regedit /e  g HKEY－LOCAL－MACHINE\Enum\PCI；接着用EDIT查看关于硬盘控制器的部分，发现有"ChannelOptions"=hex:00，问题到这里终于发现了，原来是有人把IDE控制器设置成不使用，造成在加载硬盘控制器后，系统不能访问硬盘，所以把它改为：hex:02；再键入命令：regedit  g，把修改后的信息导入。重新启动机器，一切正常运行了。  这样，在不损坏任何数据的情况下，就把问题解决了。希望这个例子能给大家带来这种DOS下维护注册表技巧的启发，毕竟，我们硬盘上面有很多都是无价的数据。