论坛风格切换
正版合作和侵权请联系 sd173@foxmail.com
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 1690阅读
  • 0回复

[求助-系统问题]注册表  由浅及深 [复制链接]

上一主题 下一主题
离线yjs0202
 

发帖
16457
今日发帖
最后登录
2016-05-24
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-04-10 20:17:59
      注册表对有的人还是比较陌生的,因为现在第三方软件太多了,如优化大师、魔法兔子等等,但个人觉得改善系统的第三方软件还不够完善,如果初级用户使用不当,会出现严重的后果,所以提供这篇文章,希望大家多多学习,本人能力有限,还希望大家多提宝贵意见:

一、注册表的由来

  PC机及其操作系统的一个特点就是允许用户按照自己的要求对计算机系统的硬件和软件进行各种各样的配置。早期的图形操作系统,如Win3.x中,对软硬件工作环境的配置是通过对扩展名为.ini的文件进行修改来完成的,但INI文件管理起来很不方便,因为每种设备或应用程序都得有自己的INI文件,并且在网络上难以实现远程访问。
  
  为了克服上述这些问题,在Windows 95及其后继版本中,采用了一种叫做“注册表”的数据库来统一进行管理,将各种信息资源集中起来并存储各种配置信息。按照这一原则,Windows各版本中都采用了将应用程序和计算机系统全部配置信息容纳在一起的注册表,用来管理应用程序和文件的关联、硬件设备说明、状态属性以及各种状态信息和数据等。  
 
  与INI文件不同的是:
  1.注册表采用了二进制形式登录数据;
  2.注册表支持子键,各级子关键字都有自己的“键值”;
  3.注册表中的键值项可以包含可执行代码,而不是简单的字串;
  4.在同一台计算机上,注册表可以存储多个用户的特性。   

  注册表的特点有:
  1.注册表允许对硬件、系统参数、应用程序和设备驱动程序进行跟踪配置,这使得修改某些设置后不用重新启动成为可能。
  2.注册表中登录的硬件部分数据可以支持高版本Windows的即插即用特性。当Windows检测到机器上的新设备时,就把有关数据保存到注册表中,另外,还可以避免新设备与原有设备之间的资源冲突。
  3.管理人员和用户通过注册表可以在网络上检查系统的配置和设置,使得远程管理得以实现。

二、使用注册表

  1.大家可以在开始菜单中的运行里输入regedit
  2.也可以在DOS下输入regedit
  
三、注册表根键说明

  hkey_classes_root 包含注册的所有OLE信息和文档类型,是从 hkey_local_machine\software\classes复制的。
  hkey_current_user 包含登录的用户配置信息,是从hkey_users\当前用户子树复制的。
  hkey_local_machine 包含本机的配置信息。其中config子树是显示器打印机信息; enum子树是即插即用设备信息;system子树是设备驱动程序和服务参数的控制集合;software子树是应用程序专用设置。
  hkey_users 所有登录用户信息。
  hkey_current_config 包含常被用户改变的部分硬件软件配置,如字体设置、显示器类型、打印机设置等。是从hkey_local_machine\config复制的。
  hkey_dyn_data 包含现在计算机内存中保存的系统信息。
  
四、注表详细内容

  Hkey_local_machine\software\microsoft\windows\currentVersion\explorer\user shell folders 保存个人文件夹、收藏夹的路径
  Hkey_local_machine\system\currentControlSet\control\keyboard Layouts保存键盘使用的语言以及各种中文输入法
  Hkey_users\.Default\software\microsoft\internet explorer\typeURLs保存IE浏览器地址栏中输入的URL地址列表信息。清除文档菜单时将被清空。
  Hkey_users\.Default\so..\mi..\wi..\currentVersion\ex..\menuOrder\startMenu 保留程序菜单排序信息
  Hkey_users\.Default\so..\microsoft\windows\currentVersion\explorer\RunMRU 保存“开始 * 运行...“中运行的程序列表信息。清除文档菜单时将被清空。
  Hkey_users\.Default\so..\microsoft\windows\currentVersion\explorer\ecentDocs 保存最近使用的十五个文档的快捷方式(删除掉可解决文档名称重复的毛病),清除文档菜单时将被清空。
  Hkey_local_machine\software\microsoft\windows\currentVersion\uninstall 保存已安装的Windows应用程序卸载信息。
  hkey_users\.default\software\microsoft\windows\currentVersion\applets 保存Windows应用程序的纪录数据。
  Hkey_local_machine\system\CurrentControlSet\services\class 保存控制面板-增添硬件设备-设备类型目录。
  Hkey_local_machine\system\CurrentControlSet\control\update 立即刷新设置。值为00设置为自动刷新,01设置为手工刷新[在资源管理器中按F5刷新]。
  HKEY_CURRENT_USER\Control Panel\Desktop 新建串值名MenuShowDelay=0 可使“开始”菜单中子菜单的弹出速度提高。新建串值名MinAnimate,值为1启动动画效果开关窗口,值为0取消动画效果。
  Hkey_local_machine\software\microsoft\windows\currentVersion\run 保存由控制面板设定的计算机启动时运行程序的名称,其图标显示在任务条右边。[启动文件夹程序运行时图标也在任务条右边]
  Hkey_users\.default\software\microsoft\windows\currentVersion\run保存由用户设定的计算机启动时运行程序的名称,其图标显示在任务条右侧。
  HKEY_CLASS_ROOT/Paint.Pricture/DefaultIcon 默认图片的图标。双击窗口右侧的字符串,在打开的对话框中删除原来的键值,输入%1。重新启动后,在“我的电脑”中打开Windows目录,选择“大图标“,然后你看到的Bmp文件的图标再也不是千篇一律的画板图标了,而是每个Bmp文件的略图。
  Hkey-local-machine\ software\ microsoft\ windows\ currentVersion\ Policies\ Ratings 保存IE4.0中文版“安全”*“分级审查”中设置的口令(数据加密)。
  Hkey-local-machine\ software\ microsoft\ windows\ currentVersion\ explorer\ desktop\nameSpace保存桌面中特殊的图标,如回收站、收件箱、MS Network等。

五、如何备份注册表

  利用注册表编辑器手工备份注册表

  注册表编辑器(Regedit)是操作系统自带的一款注册表工具,通过它就能对注册表进行各种修改。当然,"备份"与"恢复"注册表自然是它的本能了。   

  (1)通过注册表编辑器备份注册表
  由于修改注册表有时会危及系统的安全,因此不管是WINDOWS 98还是WINDOWS 2000甚至WINDOWS XP,都把注册表编辑器"藏"在了一个非常隐蔽的地方,要想"请"它出山,必须通过特殊的手段才行。点击"开始"菜单,选择菜单上的"运行"选项,在弹出的"运行"窗口中输入"Regedit"后,点击"确定"按钮,这样就启动了注册表编辑器。

  点击注册表编辑器的"注册表"菜单,再点击"导出注册表文件"选项,在弹出的对话框中输入文件名"regedit",将"保存类型"选为"注册表文件",再将"导出范围"设置为"全部",接下来选择文件存储位置,最后点击"保存"按钮,就可将系统的注册表保存到硬盘上。

  完成上述步骤后,找到刚才保存备份文件的那个文件夹,就会发现备份好的文件已经放在文件夹中了。   

  (2)在DOS下备份注册表
  当注册表损坏后,WINDOWS(包括"安全模式")无法进入,此时该怎么办呢?在纯DOS环境下进行注册表的备份、恢复是另外一种补救措施,下面来看看在DOS环境下,怎样来备份、恢复注册表。

  在纯DOS下通过注册表编辑器备份与恢复注册表前面已经讲解了利用注册表编辑器在WINDOWS环境下备份、恢复注册表,其实"Regedit.exe"这个注册表编辑器不仅能在WINDOWS环境中运行,也能在DOS下使用。

  虽然在DOS环境中的注册表编辑器的功能没有在WINDOWS环境中那么强大,但是也有它的独到之处。比如说通过注册表编辑器在WINDOWS中备份了注册表,可系统出了问题之后,无法进入WINDOWS,此时就可以在纯DOS下通过注册表编辑器来恢复注册表。

  应该说在DOS环境中备份注册表的情况还是不多见的,一般在WINDOWS中备份就行了,不过在一些特殊的情况下,这种方式就显得很实用了。

  进入DOS后,再进入C盘的WINDOWS目录,在该目录的提示符下输入"regedit"后按回车键,便能查看"regedit"的使用参数。

  通过"Regedit"备份注册表仍然需要用到"system.dat"和"user.dat"这两个文件,而该程序的具体命令格式是这样的:

 


[ 复制到剪切板 ]代码:
Regedit /L:system /R:user /E filename.reg Regpath

  参数含义:
  /L:system指定System.dat文件所在的路径。
  /R:user指定User.dat文件所在的路径。
  /E:此参数指定注册表编辑器要进行导出注册表操作,在此参数后面空一格,输入导出注册表的文件名。
  Regpath:用来指定要导出哪个注册表的分支,如果不指定,则将导出全部注册表分支。在这些参数中,"/L:system"和"/R:user"参数是可选项,如果不使用这两个参数,注册表编辑器则认为是对WINDOWS目录下的"system.dat"和"user.dat"文件进行操作。如果是通过从软盘启动并进入DOS,那么就必须使用"/L"和"/R"参数来指定"system.dat"和"user.dat"文件的具体路径,否则注册表编辑器将无法找到它们。

  比如说,如果通过启动盘进入DOS,则备份注册表的命令是"Regedit /L:C:\windows\/R:C:\windows\/e regedit.reg",该命令的意思是把整个注册表备份到WINDOWS目录下,其文件名为"regedit.reg"。而如果输入的是"regedit /E D:\regedit.reg"这条命令,则是说把整个注册表备份到D盘的根目录下(省略了"/L"和"/R"参数),其文件名为"Regedit.reg"。   

  (3)用注册表检查器备份注册表
  在DOS环境下的注册表检查器Scanreg.exe可以用来备份注册表。   
  命令格式为:
 


[ 复制到剪切板 ]代码:
Scanreg /backup /restore /comment

  
  参数解释:
  /backup用来立即备份注册表
  /restore按照备份的时间以及日期显示所有的备份文件
  /comment在/restore中显示同备份文件有关的部分   
  注意:在显示备份的注册表文件时,压缩备份的文件以.CAB文件列出,CAB文件的后面单词是Started或者是NotStarted,Started表示这个文件能够成功启动Windows,是一个完好的备份文件,NotStarted表示文件没有被用来启动Windows,因此还不能够知道是否是一个完好备份。   

  比如:如果我们要查看所有的备份文件及同备份有关的部分,命令如下:Scanreg /restore /comment

六、使用技巧

  上面介绍的都是概念上的东东,下面让我们实际操作吧

  1.加快开机及关速度
  在[开始]-->[运行]-->键入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],将字符串值[HungAppTimeout]的数值数据更改为[200],将字符串值[WaitToKillAppTimeout]的数值数据更改为1000.另外在[HKEY_LOCAL_MACHINE]-->[System]-->[CurrentControlSet]-->[Control],将字符串值[HungAppTimeout]的数值数据更改为[200],将字符串值[WaitToKillServiceTimeout]的数值数据更改1000  
 
  2.自动关闭停止响应程序
  在[开始]-->[运行]-->键入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],将字符串值[AutoEndTasks]的数值数据更改为1,重新启动即可   

  3.清除内存内被不使用的DLL文件
  在[开始]-->[运行]-->键入[Regedit]-->[HKKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Microsoft]-->[Windows]-->[CurrentVersion],在[Explorer]增加一个项[AlwaysUnloadDLL],默认值设为1。注:如由默认值设定为[0]则代表停用此功能   

  4.加快菜单显示速度

  在[开始]-->[运行]-->键入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],将字符串值[MenuShowDelay]的数值数据更改为[0],调整后如觉得菜单显示速度太快而不适应者可将[MenuShowDelay]的数值数据更改为[200],重新启动即可

      5.禁止修改用户文件夹 
找到HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer。如果要锁定“图片收藏”、“我的文档”、“收藏夹”、“我的音乐”这些用户文件夹的物理位置,分别把下面这些键设置成1:DisableMyPicturesDirChange,DisablePersonalDirChange,DisableFavoritesDirChange,DisableMyMusicDirChange   

  6.减小浏览局域网的延迟时间 
  和Windows 2000一样,XP在浏览局域网时也存在烦人的延迟问题,但介绍这个问题的资料却很难找到。如果你浏览一台Win 9x的机器,例如,在网上邻居的地址栏输入“\computername”,XP的机器会在它正在连接的机器上检查“任务计划”。这种搜索过程可能造成多达30秒的延迟。如果你直接打开某个共享资源,例如在网上邻居的地址栏输入“\computernameshare”,就不会有这个延迟过程。要想避免XP搜索“任务计划”的操作,提高浏览网络的速度,你可以删除HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerRemoteComputerNameSpace{D6277990-4C6A-11CF-8D87-00AA0060F5BF}子键。该键的类型是REG_SZ   

  7.屏蔽系统中的热键  
  点击“开始”→“运行”,输入Regedit,打开注册表编辑器。然后依次打开到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,新建一个双字节值,键名为“NoWindows Keys”,键值为“1”,这样就可以禁止用户利用系统热键来执行一些禁用的命令。如果要恢复,只要将键值设为0或是将此键删除即可     

      8.关闭不用的共享  
  安全问题一直为大家所关注,为了自己的系统安全能够有保证,某些不必要的共享还是应该关闭的。用记事本编辑如下内容的注册表文件,保存为任意名字的.Reg文件,使用时双击即可关闭那些不必要的共享:  
  Windows Registry Editor Version 5.00  
  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]  
  "AutoShareServer"=dword:00000000  
  "AutoSharewks"=dword:00000000  
  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]  
  "restrictanonymous"=dword:00000001 

      9.让IE支持多线程下载
  一般情况下,大家都使用多线程下载软件如Flashget等下载文件,其实IE也可以支持多线程下载的,只是微软将这个功能给藏了起来。我们把它给挖出来就可以使用了。打开注册表编辑器,在注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings下新建双字节值项“MaxConnectionsPerServer”,它决定了最大同步下载的连线数目,一般设定为5~8个连线数目比较好。另外,对于HTTP 1.0服务器,可以加入名为“MaxConnectionsPer1_0Server”的双字节值项,它也是用来设置最大同步下载的数目,也可以设定为5~8。    

  10.让WINDOWS XP自动登陆 
  打开:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,在右边的窗口中的新建字符串"AutoAdminlogon",并把他们的键值为"1",并且把“DefaultUserName”的值设置为用户名,并且另外新建一个字符串值“DefaultPassword”,并设其值为用户的密码