Windows 版 (精华区)

发信人: ark2000 (ARK), 信区: Windows
标  题: 细说从头看端详--注册表的作用
发信站: 哈工大紫丁香 (2000年11月01日21:57:05 星期三), 站内信件

细 说 从 头 看端 详 -- 注 册 表 的 作 用
一、注册表的结构划分及相互关系
  WINDOWS的注册表有六大根键,相当于一个硬盘被分成了六个分区。
  在“运行”对话框中输入RegEdit,然后单击“确定”按钮,则可以运行注册表编辑
器。
  图1显示了Windows 98中文版的注册表Registry&127;(System.dat、User.dat、Con
fig.pol)的数据组织结构。
  图1左窗格显示的是注册表的根键,这样的根键共六个。这些根键都是大写的,并以
HKEY_为前缀,&127;这种命令约定是以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-STE
M\Current Control就是HKEY_LOCAL_MACHINE\SYSTEM\Current Control。
  HKEY_USERS中保存了默认用户和当前登录用户的用户信息。HKEY_CURRENT_USER中保
存了当前登录用户的用户信息。
  HKEY_DYN_DATA保存了系统运行时的动态数据,它反映出系统的当前状态,在每次运
行时都是不一样的,即便是在同一台机器上。
  根据上面的分析,注册表中的信息可以分为HKEY_LOCAL_MACHINE和HKEY_USERS两大
类,这两大类的详细内容请看后面的介绍。
二、六大根键的作用
  在注册表中,所有的数据都是通过一种树状结构以键和子键的方式组织起来,十分
类似于目录结构。每个键都包含了一组特定的信息,每个键的键名都是和它所包含的信
息相关的。如果这个键包含子键,则在注册表编辑器窗口中代表这个键的文件夹的左边
将有“+”符号,以表示在这个文件夹中有更多的内容。如果这个文件夹被用户打开了
,那么这个“+”就会变成“-”。
  1.HKEY_USERS
  该根键保存了存放在本地计算机口令列表中的用户标识和密码列表。每个用户的预
配置信息都存储在HKEY_USERS根键中。HKEY_USERS是远程计算机中访问的根键之一。图
3为HKEY_USER子关键字连接情况。
  2.HKEY_CURRENT_USER
  该根键包含本地工作站中存放的当前登录的用户信息,包括用户登录用户名和暂存的
密码(注:此密码在输入时是隐藏的)。用户登录Windows 98时,其信息从HKEY_USERS中
相应的项拷贝到HKEY_CURRENT_USER中。图4为HKEY_CURRENT_USER根键下各个键之间连接
的情况。
  3.HKEY_CURRENT_CONFIG
  该根键存放着定义当前用户桌面配置(如显示器等)的数据,最后使用的文档列表(M
RU)和其他有关当前用户的Windows 98中文版的安装的信息。图5为HKEY_CURRENT_CONF
IG子关键字之间的连接情况。
  4.HKEY_CLASSES_ROOT
  根据在Windows 98中文版中安装的应用程序的扩展名,该根键指明其文件类型的名称

  在第一次安装Windows 98中文版时,RTF(Rich Text Format)文件与写字板(WordPad
)&127;联系起来,但在以后安装了中文Word 6.0后,&127;双击一个RTF文件时,将自动激
活Word。存放在SYSTEM.DAT中的HKEY_CLASSES_ROOT,&127;将替代WIN.INI文件中的[Ext
ensions]&127;小节中的设置项,它把应用程序与文件扩展名联系起来,它也替代了Windo
ws 3.x中的Reg.dat文件中的相似的设置项。&127;图6显示了HKEY_CLASSES_ROOT根键中
包括的文件扩展名的情况。
  5.HKEY_LOCAL_MACHINE
  该根键存放本地计算机硬件数据,此根键下的子关键字包括在SYSTEM.DAT中,用来提
供HKEY_LOCAL_MACHINE所需的信息,或者在远程计算机中可访问的一组键中。
  该根键中的许多子键与System.ini文件中设置项类似。图7显示了HKEY_LOCAL_MACH
INE根键下的各个子键之间的情况。
  6.HKEY_DYN_DATA
  该根键存放了系统在运行时动态数据,此数据在每次显示时都是变化的,因此,此
根键下的信息没有放在注册表中。图8显示了HKEY_DYN_DATA根键下的各个子键的情况。

三、注册表部分重要内容
  注册表是一个大型数据库Registry。要详细地分析该数据库,不是一两页就能介绍
完。我曾经用了半年多时间分析此数据库结构。下面只介绍部分重要内容。有条件上网
的朋友可以到http://reg2000.126.com去看一看。
  (一)HKEY_CLASS_ROOT
  1.HKEY_CLASS_ROOT/Paint.Pricture/DefaultIcon双击窗口右侧的默认字符串,在
打开的对话框中删除原来的“键值”,输入%1。重新启动后,在“我的电脑”中打开Wi
ndows目录,选择“大图标”,然后你看到的Bmp文件的图标再也不是千篇一律的MSPAIN
T图标了,而是每个Bmp文件的略图(前提是未安装ACDSee等看图软件)。
  (二)HKEY_CURRENT_USER
  1.HKEY_CURRENT_USER\Control Panel\Desktop 中新建串值名MenuShowDelay=0 可
使“开始”菜单中子菜单的弹出速度提高。
  2.在HKEY_CURRENT_USER\Control Panel\Deskt-op\WindowsMeterics中新建串值名
MinAnimate,值为1启动动画效果开关窗口,值为0取消动画效果。
  (三) HKEY_LOCAL_MACHINE
  1.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\
user shell folders 保存个人文件夹、收藏夹的路径。
  2.HKEY_LOCAL_MACHINE\system\currentControl-Set\control\keyboard Layouts 
保存键盘使用的语言以及各种中文输入法。
  3.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\uninstall
 保存已安装的Windows应用程序卸载信息。
  4.HKEY_LOCAL_MACHINE\system\CurrentControl-Set\services\class 保存控制面
板-增添硬件设备-设备类型目录。
  5.HKEY_LOCAL_MACHINE\system\Current-ControlSet\control\update 设置刷新方
式。值为00设置为自动刷新,01设置为手工刷新[在资源管理器中按F5]。
  6.HKEY_LOCAL_MACHINE\software\microsoft\win-dows\currentVersion\run 保存
由控制面板设定的计算机启动时运行程序的名称,其图标显示在任务条右边。在“启动
”文件夹程序运行时图标也在任务条右边。
  7.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\Policies\
Ratings 保存IE4.0中文版“安全”\“分级审查”中设置的口令(数据加密),若遗忘了口
令,删除 Ratings 中的数据即可解决问题。
  8.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\
desktop\nameSpace 保存桌面中特殊的图标,如回收站、收件箱、MS Network等。
  (四) HKEY_USERS
  1.HKEY_USERS\.Default\software\microsoft\internet explorer\typeURLs保存I
E4.0浏览器地址栏中输入的URL地址列表信息。清除文档菜单时将被清空。
  2.HKEY_USERS\.Default\so..\mi..\wi..\current-Version\ex..\menuOrder\star
tMenu保留程序菜单排序信息。
  3.HKEY_USERS\.Default\so..\microsoft\windows\current-Version\explorer\Ru
nMRU保存“开始 \ 运行...”中运行的程序列表信息。清除文档菜单时将被清空。
  4.HKEY_USERS\.Default\so..\microsoft\windows\current-Version\explorer\Re
centDocs 保存最近使用的十五个文档的快捷方式(删除掉可解决文档名称重复的毛病),
清除文档菜单时将被清空。
  5.HKEY_USERS\.default\software\microsoft\windows\currentVersion\applets 
保存Windows应用程序的记录数据。
  6.HKEY_USERS\.default\software\microsoft\windows\currentVersion\run保存由
用户设定的计算机启动时运行程序的名称,其图标显示在任务条右侧。
  注册表通过键和子键来管理各种信息。但是,注册表中的所有信息是以各种形式的
键值项数据保存下来。在注册表编辑器右窗格中,保存的都是键值项数据。这些键值项
数据可分为如下三种类型:
  1.字符串值
  在注册表中,字符串值一般用来表示文件的描述、硬件的标识等。通常它由字母和
数字组成,最大长度不能超过255个字符。在图9所示中,“D:\pwin98\trident”即为键
值名“a”的键值,它是一种字符串值类型的。同样地,“ba”也为键值名“MRUList”
的键值。通过键值名、键值就可以组成一种键值项数据,这就相当于Win.ini、Ssyt-em
.ini文件中小节下的设置行。其实,使用注册表编辑器将这些键值项数据导出后,其形
式与INI文件中的设置行完全相同。
  2.二进制值
  在注册表中,二进制值是没有长度限制的,可以是任意个字节长。在注册表编辑器
中,二进制以十六进制的方式显示出来,如图10所示。在图10中,键值名Wizard的键值
“80 00 00 00”就是一个二进制。在如图11所示的“编辑二进制值”对话框时,在编辑
框的左边输入十六进制数时,其右边将会显示相应的ASCII码。
  3.DWORD值
  DWORD值是一个32位(4个字节,即双字)长度的数值。在注册表编辑器中,您将发
现系统会以十六进制的方式显示DWORD值,如图12所示。在编辑DWORD数值时,可以选择
用十进制还是16进制的方式进行输入。
--
我也是一叶小舟。
http://ark.hit.edu.cn/
ftp://ark.hit.edu.cn/

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: ark.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.323毫秒