046_注册表管理工具
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.2 课题研究的意义
注册表被称为Windows操作系统的核心,它实质上是一个庞大的数据库,存放了关于计算机硬件的全部配置信息、系统和应用软件的初始化信息、应用软件和文档文件的关联关系、硬件设备的说明以及各种状态信息和数据,包括Windows操作时不断引用的信息。具体来说,在启动 Windows 时,注册表会对照已有硬件配置数据,检测新的硬件信息;系统内核从注册表中选取信息包括要装入什么设备驱动程序,以及按什么次序装入,内核传送回它自身的信息,例如版权号;同时设备驱动程序也向注册表传送数据,并从注册表接收装入和配置参数,一个好的设备驱动程序会告诉注册表它有使用什么系统资源,例如硬件中断或DMA通道等,另外,设备驱动程序还要报告所发现的配置数据;为应用程序或硬件的运行提供增加新的配置数据的服务。
1.3 课题研究的方法
注册表管理工具是建立在Windows XP、Windows 2000和Windows 2003平台上的应用程序设计。要掌握注册表各个根键所对应的系统功能,要清楚的知道注册表的数据类型。要对注册表的相应的键值进行准确的读取和写入,使用Microsoft Visual C++ 6.0作为开发工具,利用VC提供的API函数完成应用程序的编写。主要运用RegOpenKeyEx()、RegQueryValueEx()、RegSetValueEx()等函数来完成注册表键值的读写、创建与删除,从而实现对系统设置。 【买计算机毕业论文就到www.think58.com】
本文来自think58
2 理论基础
2.1 Windows 2000/XP 的物理文件构成
在讲述Windows 2000的物理文件构成时,必须提到一个概念,即配置单元文件。在Windows 2000 注册表编辑器中,文件菜单下有个“加载/卸载文件配置单元”选项。所谓的配置单元是作为文件出现在硬盘上的注册表的一部分。注册表子树被划分成配置单元。配置单元是根键、子键和键值的离散体,它位于注册表层的顶部。配置单元受Systemroot\System32\Config或Systemroot\ProFile\Username文件夹中的单个文件和.log文件的支持。
默认情况下,大多数配置单元文件(Default、SAM、Security、Software和System)存储在Systemroot文件夹。而每个计算机用户的配置文件信息(包括Ntuser.dat和Ntuser.dat.log)的位置,取决于Windows 2000是全新安装还是从Windows 95/98或从Windows NT升级安装。在全新安装以及从Windows 95/98升级安装的情况下,Ntuser.dat和Ntuser.dat.log文件存储在%SystemDrive%\Documents and Settings\Username文件夹中。在从Windows NT升级的安装中,Nturser.dat和Ntuser.dat.log文件存储在%Systemroot%\ProFile\Username文件夹中。
因为配置单元是一个文件,所以它可以从一个系统移动到另一个系统。但是,你必须使用注册表编辑器编辑该文件。 think58好,好think58
Windows 2000注册表中的每个配置单元均与一组标准文件相关联。如下表1所示显示运行Windows 2000的计算机的标准配置单元和文件:
表1 配置单元与对应的文件
注册表配置单元 对应的文件名
HKEY_LOCAL_MACHINE\SAM Sam和Sam.log
HKEY_LOCAL_MACHINE\SECURITY Security和Security.log
HKEY_LOCAL_MACHINE\SYSTEM System和System.log
HKEY_CURRENT_CONFIG System和System.log
HKEY_CURRENT_USER Ntuser.dat和Ntuser.dat.log
HKEY_USERS\DEFAULT Default和Default.log
HKEY_LOCAL_MACHINE\SOFTWARE Software和Software.log
Windows XP注册表物理文件构成与Windows 2000基本相同。知道Windows注册表物理文件的构成及保存位置对于注册表的备份和恢复十分有用。因此,这里有必要介绍注册表物理文件的另一个保存位置:Windows\Repair。这个文件夹中保存的是初始化注册表的5个文件(System、Software、SAM、Security、Default),在因注册表的无缘无故造成系统崩溃时,将它们复制到System32\Config(先将备份后删除)中可以来挽救系统。
2.2五大注册表根键的概述
2.2.1 Windows NT注册表五大根键
Windows NT的注册表只包含了五大根键,在注册表编辑器的组织结构中,去掉了HKEY_DYN_DATA根键,使注册表编辑器开始显示为五大根键;以后基于NT的操作系统Windows 2000/XP/2003也都显示为五大根键。 copyright think58
[版权所有:http://think58.com]
(1)HKEY_LOCAL_MACHINE:用于保存本机系统的信息,包含硬件与操作系统的数据,如驱动程序、系统配置信息等;
(2)HKEY_CLASS_ROOT:用于保存与文件关联有关的信息;
(3)HKEY_CURRENT_CONFIG:保存与当前的硬件配置文件有关的数据;
(4)HKEY_CURRENT_USER:保存与当前登录用户有关的环境设置的数据,包括桌面设置、网络连接等;
(5)HKEY_USERS:保存当用户登录时,所有必须载入的用户配置文件数据,包括缺省的配置文件和登录者的环境配置文件。
2.2.2 Windows 2000注册表的五大根键
像Windows NT一样,Windows 2000的注册表编辑器去掉了HKEY_DYN_DATA根键,只有HKEY_LOCAL_MACHINE、HKEY_CLASSES_ROOT、HKEY¬_CURRENT¬_CONFIG、HKEY_USERS、HKEY_CURRENT_USER五个根键:
(1) HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE根键中保存的是用来控制系统和软件的设置。由于这些设置是针对那些使用Windows系统的用户而设置的,是一个公共配置信息,所以它与具体用户无关。该根键包含下面五个子键:
HARDWARE子键
该子键包含了系统使用的浮点处理器、串口等有关信息。在它下面保存了一些有关超文本终端、数字协处理器和串口等信息。
SAM子键 [资料来源:http://think58.com]
该子键已经被系统保护起来,我们不可能看到里面的内容。
SECURITY子键
该子键位于HKEY_LOCAL_MACHINE\Security分支上,该分支只是为将来的高级功能而预留的。
SOFTWARE子键
该子键中保留的是所有已安装的32位应用程序的信息。各个程序的控制信息分别安装在响应的子键中。由于不同的计算机安装的应用程序互不相同,因此这个子键下面的子键信息会有很大的差异。
SYSTEM子键
该子键保存的是启动时所使用的信息和修复系统时所需的信息,其中包括各个驱动程序的描述信息和配置信息等。System子键下面有一个CurrentControlSet子键,系统在这个子键下保存了当前的驱动程序控制集的信息。
(2)HKEY_CLASSES_ROOT根键
在Windows 2000中对HKEY_CLASSES_ROOT子树做了改进。HKEY_CLASSE_ROOT子树与当前注册使用的用户有关,它实际上是HKEY_CURRENT_USER\SOFTWARE\Classes和HKEY_LOCAL_MACHINE\SOFTWARE\Classes的交集。如果两者的内容有冲突,则HKEY_CURRENT_USER\SOFTWARE\Classes优先。这个新的特性在Windows 2000中叫做“单用户类注册”(Per-user Class Registration)。单用户类注册有如下的好处:
同一台计算机上的不同用户可以分别定制不同的系统配置
例如,用户甲安装了ACDSee图形软件,将BMP文件与ACDSee图形软件建立关联。而用户乙安装了PhotoShop图形软件,将BMP文件与PhotoShop图形软件建立关联,当用户乙双击BMP文件时,会自动调用PhotoShop图形软件,而不会调用用户安装的ACDSee图形软件。
提高了注册表的安全性
使用单用户类注册,各个用户有自己的HKEY_CLASSES_ROOT,不再需要通过修改HKEY_LOCAL_MACHINE/SOFTWARE/classes来满足自己的需求,这样系统管理员可以提高HKEY_LOCAL_MACHINE/SOFTWARE/classes的权限,禁止普通用户修改它,而各个用户之间更是不能修改对方的HKEY_CLASSES_ROOT。
支持漫游类注册
在Windows 2000中,提供了一个叫做“IntelliMirror”的功能。通过在服务器和客户端同时使用IntelliMirror,用户的数据、应用程序和设置在所有的环境中都可以跟随用户漫游,这当然包括了用户的配置文件。HKEY_CLASSES_ROOT根键中记录的是Windows操作系统中所有数据文件的信息,只要记录不同文件的文件名后缀和与之对应的应用程序。HKEY_CLASSES_ROOT根键中保存的信息与HKEY_LOCAL_MACHINE\SOFTWARE\Classes分支中保存的信息是一致的。
(3)HKEY_CURRENT_CONFIG根键
如果用户在Windows中设置了两套或者两套以上的硬件配置文件,则在系统启动时将会让用户选择使用哪套配置文件。而HKEY_CURRENT_CONFIG根键中保存的正是当前配置文件的所有信息。
本文来自think58
(4)HKEY_USERS的根键
HKEY_USERS根键中保存的是默认用户(.DEFAULT)、当前登录用户与软件的信息。它的下面有.DEFAUL、S-1-5-21-1229272821-436374067-1060284298-1000和S-1-5-21-1229272821-435374069-1060264298-1000_Classes三个子键,其中最重要的是.DEFAULT子键。
.DEFAULT子键的配置是针对未来将会被创建的新用户的。新用户根据默认配置信息来生成自己的配置文件,该配置文件包括环境、屏幕、声音等多种信息。
(5)HKEY_CURRENT_USER根键
HKEY_CURRENT_USER根键中保存的信息(当前用户的子键信息)与HKEY_USERS\.DEFAULT分支中所保存的信息是相同的。任何对HKEY_CURRENT_USER根键中的信息的修改都会导致对HKEY_USERS\.Default中子键信息的修改,反之也是如此。
2.2.3 Windows XP/2003注册表的五大根键
我们知道,Windows NT/2000都提供了两个注册表编辑器Regedit和Regedt32,二者在功能和组织体系上都有不同,在实际的注册表编辑中也各有优点和缺点;从Windows XP开始,开始将这两个注册表编辑器的功能合在了一起,所以两者在细节方面肯定有一些不同。但在Windows XP同样拥有五大根键,且根键的功能含义和映射关系都和Windows 2000保持了一致。在注册表物理文件的构成上,也是一致的。再来看看每个根键单独包含的信息: 内容来自think58
[版权所有:http://think58.com]
(1)HKEY_CLASSES_ROOT根键
HKEY_CLASSES_ROOT根键包含了启动应用程序所需的全部信息,其中包括:所有扩展名以及应用程序和文档之间的关联信息;所有驱动程序的名字;当作指针的字符串,指向它们代表的实际文件;类标识CLSID,这在访问子键信息时非常有用,因为Windows中访问子键的信息都是用CLSID来代替的。这里的标识在Windows XP系统中是唯一的;DDE和OLE信息。对于每个文件关联都可以使用DDE和OLE功能;应用程序和文档使用的图标。
(2)HKEY_CURRENT_USER根键
HKEY_CURRENT_USER根键用于管理与当前登录系统的用户有关的信息,其中包括:用户的桌面以及Windows XP对用户呈现的外观和行为;与所有网络设备的连接,如打印机、共享磁盘空间等资源;桌面程序项、应用程序参数选择项、屏幕颜色等其他一些个人偏好,还有安全权限等。
(3)HKEY_LOCAL_MACHINE根键
HKEY_LOCAL_MACHINE根键保存了运行Windows的信息,包括应用程序、驱动程序以及硬件信息它有五个独立的子键:
① HARDWARE:其中保存了含有计算机硬件信息的子键,在启动系统时,HARDWARE子键都被重新创建,这样就很容易向系统中添加新硬件了。用户对HARDWARE子键进行的修改没有任何意义也不会生效,更不用像通过其中的CPU信息实现超频了。因为它是系统根据硬件信息在启动时自己填写的,而不是根据它的数据去启动硬件。 [版权所有:http://think58.com]
② SAM:这是一个关于安全账号管理器的子键,其中存储着用户信息和域信息。无论是哪种注册表,SAM中的信息都是不可访问的,只能由系统管理员通过用户管理器进行管理。
③ SECURITY:这里的信息与本地安全性和用户权限有关,其中含有SAM子键的备份。它也是用户不能访问的,只能由系统管理员的管理工具修改。
④ SOFTWARE:其中包含了已经安装的系统软件和用户软件信息。
⑤ SYSTEM:其中含有与系统启动、设备驱动程序、服务和Windows XP配置有关的信息。
(4)HKEY_USERS根键
HKEY_USERS根键中包含着所有用户配置文件的当前活动用户的信息。其中的.DEFAULT是为那些没有用户配置文件的登录用户而设置的。HKEY_USERS中典型的用户配置文件都包括如下一些子键:
① AppEvents:其中的EventLabels包括与事件有关的信息,而Schemes则包括一些针对自己使用特定声音方案的应用程序的标签。
② Console:包含缺省的命令提示符配置。
③ Control Panel:包含控制面板上的小信息。
④ Environment:包含用户环境信息。
⑤ Keyboard Layout:包含键盘配置信息。
⑥ Printers:包含与计算机相连的每一台远程打印机的映射信息。
⑦ Software:包含系统中已安装的软件信息。 think58
⑧ UNICODE Program Groups:包含的是关于那些使用UNICODE的程序信息。
(5)HKEY_CURRENT_CONFIG根键
HKEY_CURRENT_CONFIG根键是HKEY_LOCAL_MACHINE中的内容映射。如果系统中只有一个硬件配置,则其中的数据是和HKEY_LOCAL_MACHINE中一样的。若系统中新建了一个硬件配置“(控制面板→系统→硬件配置文件)”,就会在HKEY_LOCAL_MACHINE中反映出来,在启动时会选择一种配置文件映射到HKEY_CURRENT_CONFIG中。
2.3 Windows 2000/XP/2003注册表的五大根键解析
2.3.1 HKEY_CLASSES_ROOT根键
(1)扩展名与应用程序的对应关系
Windows所支持的文件类型在HKEY_CLASSES_ROOT根键下定义。下表中列出了HKEY_CLASSES_ROOT根键中的文件扩展名和文件类型之间关系,如表2所示。
表2 HKEY_CLASSES_ROOT和文件类型之间的关系
扩展名 文件类型 扩展名 文件类型
.386 vxd文件(这是一个虚拟设备驱动程序) .aif .aiff文件
.ai application/postscript文件 .aiff aiff文件
.aifc Aiff文件 .art art文件
.ani ani文件(光标动画文件) .awd FaxView文档(用于传真显示)
.au au文件(用于Internet传输的声音文件) .avi avi文件 本文来自think58 [来源:http://think58.com]
.snd Au文件 .bfc Briefcase(一种公文包文件)
.bat bat文件(DOS、Windows下的批处理文件) .cda cda文件
.bmp Paint、picture(这是一个由画图附件所产生的文件) .crt certificate文件(这是一个用于安全方面的证书认证文件)
.cnf Conferencelinl(这是一个会议连接) .clp Clipboard文件(用于保存剪贴板中的内容)
.der certificate文件 .com Com文件(这是DOS、Windows上一个命令解释程序)
(2)特殊扩展名与应用程序的对应关系
我们在注册表编辑器中可以发现,HKEY_CLASSES_ROOT根键下的文件扩展名前面有“+”符号,而且在此文件扩展名中没有对应的应用程序。为了查明这些文件后缀与应用程序之间的关系,我们必须单击“+”一次或者几次,才可以看到它们的关系。
2.3.2 HKEY_CURRENT_USER根键
HKEY_CURRENT_USER根键中保存的信息(当前用户的子键信息)与HKEY_USERS\.Default分支中所保存的信息基本是相同的。任何对HKEY_CURRENT_USER根键中的信息的修改都会导致对HKEY_USER\.Default中子键信息的修改,反之也是如此。
2.3.3 HKEY_USERS根键
(1)AppEvents子键
HKEY_USER根键中保存的默认用户,当前登录用户与软件的信息。HKEY_USERS\.DEFAULT\Software中保存的软件信息与HKEY_LOCAL_MACHINE\Software相同。
copyright think58 [版权所有:http://think58.com]
HKEY_CURRENT_USER\.DEFAULT下面有八个子键。其中除RemoteAccess子键外,下面是其中几个系统预定义的子键。
AppEvents:登录已注册的各种应用事件。
Control Panel:与控制面板设置有关的内容。
Keyboard Layout:键盘设置信息。
Software:软件设置信息。
.DEFAULT子键的配置是针对未来将会被创建的新拥护的。新用户根据默认用户的配置信息来生成自己的配置文件,该配置文件包括环境、屏幕、声音等多种信息。
(2)ControlPanel子键
Control Panel子键位于HKEY_USEERS\.DEFAULT\Control Panel分支上,它所包含的内容与桌面、光标、键盘、和鼠标等设备有关,改变它们的键值就将改变对应的工作环境或参数,如图1所示的就是Control Panel的子键结构。
图1 Control Panel子键结构
[资料来源:http://www.THINK58.com]