Chinaunix首页 | 论坛 | 博客
  • 博客访问: 234876
  • 博文数量: 73
  • 博客积分: 3005
  • 博客等级: 中校
  • 技术积分: 857
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-24 10:11
文章分类

全部博文(73)

文章存档

2014年(2)

2011年(5)

2010年(29)

2009年(32)

2008年(5)

我的朋友

分类:

2009-12-23 11:30:56

Windows注册表的基本知识及应用
 
一、注册表的重要性
  在DOS年代,对计算机的内存管理及系统配置主要通过AUTOEXEC.BAT和CONFIG.SYS来完成。从WINDOWS3.x开始,对系统的管理增加了大量的*.ini文件来登录软件及硬件的各种初始化信息。这为系统管理带来了灵活性,也带来了不便之处。因为每个应用程序都有自己的ini文件,并在Win.ini中增加了自己的配置项,这使ini文件众多,且Win.ini日益庞大。
  从Windows95开始,原来保存在初始化文件中的有关信息,都被移到了系统的注册表中,注册表(Registry)实质上是一个庞大的分层数据库,它存储着下面这些内容:
  软、硬件的有关配置和状态信息,应用程序和资源管理器外壳的初始条件、首选项和卸载数据;电脑整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件的描述、状态和属性;电脑性能记录和底层的系统状态信息,以及各类其他数据。
   由上可见,注册表是WINDOWS的命根子,注册表文件的损坏、设置错误,将会导致应用程序无法运行、系统出错,直至系统崩溃或无法启动。
 
二、注册表的结构
    Windows98的注册表是由二进制数据组成,以一个树形结构分布。注册表主要由以下两个文件组成:
    System.dat(存储与用户无关的系统配置信息,包括硬件配置、软件的安装等)
    User.dat(存储与用户有关的信息以及特定于某个用户的应用程序安装信息 ),
    这两个文件一般保存在Windows所在的文件夹中,另外还有这些文件的备份*.da0( Windows系统在每次系统的配置改变时都会自动进行备份,生成System.da0和User.da0
文件)。
    Windows为我们提供了一个注册表编辑器(Regedit.exe)的工具,它可以用来查看和维护注册表。单击“开始”菜单,选择“运行”项,在“打开”栏中输入“regedit”,确定,即可打开注册表。
    注册表编辑器与资源管理器的界面相似。左边窗格中,从“我的电脑”开始,以下是六个分支,其含义简述如下:
    HKEY_CLASSES_ROOT:此处存储的信息可以确保当使用Windows资源管理器打开文件时,将使用正确的应用程序打开对应的文件类型。
    HKEY_CURRENT_USER:存放当前登录用户的有关信息。用户文件夹、屏幕颜色和“控制面板”设置存储在此处。该信息被称为用户配置文件。
    HKEY_LOCAL_MACHINE:包含针对该计算机(对于任何用户)的配置信息。
    HKEY_USERS:存放计算机上所有用户的配置文件。
    HKEY_CURRENT_CONFIG:包含本地计算机在系统启动时所用的硬件配置文件信息。
    HKEY_DYN_DATA:记录系统运行时刻的状态。
    注册表按层次结构来组织,六个分支名都以HKEY开头,称为主键(KEY),这和资源管理器中的文件夹相似,表示主键的图标与文件夹的图标一样。每个主键图标的左边有一个“+”号图标,单击可将这一分支展开,展开后可以看到主键还包含次级主键(SubKEY)。当单击某一主键或次主键时,右边窗格中显示的是所选主键内包含的一个或多个键值(Value)。
  键值由键值名称(ValueName)和数据(ValueData)组成,这就是右窗口中的两个列表(名称、数据)所表示的。主键中可以包含多级的次级主键,注册表中的信息就是按照多级的层次结构组织的。每个分支中保存电脑软件或硬件之中某一方面的信息与数据。

三、注册表中的键值项数据
  注册表通过键和子键来管理各种信息。但是注册表中的所有信息都是以各种形式的键值项数据保存的。在注册表编辑器右窗格中显示的都是键值项数据。这些键值项数据可以分为三种类型:
  1.字符串值
  在注册表中,字符串值一般用来表示文件的描述和硬件的标识。通常由字母和数字组成,也可以是汉字,最大长度不能超过255个字符。
  2.二进制值
  在注册表中二进制值是没有长度限制的,可以是任意字节长。在注册表编辑器中,二进制以十六进制的方式表示。
  3.DWORD值
  DWORD值是一个32位(4个字节)的数值。在注册表编辑器中也是以十六进制的方式表示。
  
四、注册表应用
  (一)注册表的备份和恢复
    由于注册表文件对计算机有着至关重要的作用,因此应当定期进行备份。备份注册表的方法为:打开注册表,在注册表菜单中选择“导出注册表文件”命令,在“导出注册表文件”对话框中,选择保存位置并取一文件名,在导出范围中选择全部(即对整个注册表进行备份)或者再选择的分支中输入要备份的分支,最后点击“保存”按钮即可。
    恢复注册表的方法很简单:打开注册表,注册表菜单中选择“引入注册表文件”命令,选择所要引人的以前备份的注册表文件,单击“打开” 按钮即可。
  (二)注册表的DOS恢复法
    有时由于注册表的损坏原因,Windows无法启动或工作出错,这时你可在DOS方式下恢复Windows系统自动备份的某一个注册表,就可恢复Windows系统正常,方法如下:
1. 用系统软盘启动进入(如Windows还能启动,则并切换到)MS-DOS方式。
2. 进入Windows\Command目录,输入SCANREG/RESTORE后回车。
3. 进入界面后,可在5个注册表备份中选取所要恢复的,重新启动后即可。
  (三)清除多余的DLL文件
    在Windows系统的System子目录下存有大量的DLL文件,这些文件可能被系统或应用程序共享。但是由于经常安装和卸载软件,就会在System目录下留下一些DLL垃圾文件。它们不但占用了硬盘空间,而且还降低系统的运行速度。你要识别、删除那些没有被系统或应用程序所共享的DLL文件,可运行“regedit”,打开注册表编辑器,找到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion\SharedDLLs分支,在SharedDLLs子键中,记录的就是有关程序共享的DLL信息,每个DLL文件的键值说明它已被几个应用程序共享。如果是二进制键值为“00 00 00 00”,则表明不被任何程序共享,可以将其删除,退出注册表编辑器,并在System目录中删除对应的文件。(你要较全面自动清除注册表中垃圾文件,可用“超级兔子”软件进行注册表优化,有关“超级兔子”软件情况,你可进入 网站)。
  (四)启动计算机时必须登录
    Windows98在启动时有一个登录对话框,要求用户选择用户名及输入密码,但这并没有多大的作用,任何用户都可以单击“取消”键而启动计算机。通过修改注册表,就可以使Windows在启动时,用户必需输入密码才能登录,从而防止非法用户使用计算机,具体修改方法如下:
    在注册表中找到HKEY_LOCAL_MACHINE\Network\Logon 键,在右边窗口中单击鼠标右键,新建一DWORD值,并命名为MustBevalidated,将其值改为ll1lllll,这样,在启动计算机时必需输入密码,否
则就不能登录。
  (五)启动时自动运行某一程序
    通过将某一程序其添加到开始菜单里的“启动”菜单项上,计算机在启动时会自动运行这个程序,这种做法很容易被其它用户改变,因为只需将其移出即可达到删除这一启动命令的目的。
    通过将很有必要在启动时运行的程序放入注册表,就可以做到使别人难以进行修改。
    具体方法为,在注册表中找到 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run键,在右边妁窗口中就可以看到Windows启动时所要执行的命令,我们可以将希望Windows在启动时执行的命令加入到其中即可。同样也可删除不希望Windows在启动时运行的命令。
  (六)扩充鼠标右键的功能
    启动计算机后,当我们在资源管理器中用右键单击某一驱动器、文件夹或文件时一般都会弹出一份快捷菜单,其中包含几个常用的命令选项。我们可以通过修改注册表,来增加或删除这些命令。例如,要为驱动器增加一杀毒命令,其具体操作方法为,在注册表中找到HKEY_LOCAL_MACHINE\Software\CLASSES\Drive键,用鼠标右键单击其下的shell子键,新建一主键,将其命名为“杀毒”,然后用鼠标右键单击刚刚建立的“杀毒”键,为其新建一主键,命名为command,再在右边窗口中修改其键值,即输入要执行的命令,例如:“D∶\RXSD\RAV\rav.exe"%1"”,这样,当在资源管理器中用右键单击驱动器时,弹出的快捷菜单中就包含了“杀毒”这一选项。同样,对文件夹进行操作时,只需找到HKEY_LOCAL_MACHINE\Software\CLASSES\Folder键,而对于文件,则要找到HKEY_LOCAL_
MACHINE\Software\CLASSES\file键,后面的操作方法同上。
    最后,我向大家提供一个小工具—— 一个VBScript脚本文件,当你有一天要修改注册表,运行“regedit”命令,试图打开注册表时,突然跳出一个警告:“注册表被管理员禁止!”,不让你打开注册表!(这下你可惨了,命根子竟然给人家封住了!这多数是你上网时有幸“中毒”了。),这时你只要运行一下这个VBScript脚本文件就可解开注册表。你可在Windows的记事本中输入以下文本:
DIM WSH
SET   WSH=WSCRIPT.CREATEOBJECT("WSCRIPT.SHELL")
WSH.POPUP  ("将为您解开注册表!")
WSH.REGWRITE "HKCU\SOfTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES\SYSTEM\DISABLEREGISTRYTOOLS",0,"REG_DWORD"
WSH.POPUP  ("SUCCESSFULLY!")
输入完后,保存时取一文件名,文件扩展名为VBS即可。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tangjianhao/archive/2005/03/05/312210.aspx
阅读(1049) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~