欢迎您访问我爱IT技术网,今天小编为你分享的操作系统知识是:【初涉注册表】,下面是详细的分享!
初涉注册表
注册表的由来
PC机及其操作系统的一个特点就是允许用户按照自己的要求对计算机系统的硬件和软件进行各种各样的配置。早期的图形操作系统,如Win3.x中,对软硬件工作环境的配置是通过对扩展名为.ini的文件进行修改来完成的,但INI文件管理起来很不方便,因为每种设备或应用程序都得有自己的INI文件,并且在网络上难以实现远程访问。
为了克服上述这些问题,在Windows 95及其后继版本中,采用了一种叫做“注册表”的数据库来统一进行管理,将各种信息资源集中起来并存储各种配置信息。按照这一原则,Windows各版本中都采用了将应用程序和计算机系统全部配置信息容纳在一起的注册表,用来管理应用程序和文件的关联、硬件设备说明、状态属性以及各种状态信息和数据等。
与INI文件不同的是:
1.注册表采用了二进制形式登录数据;
2.注册表支持子键,各级子关键字都有自己的“键值”;
3.注册表中的键值项可以包含可执行代码,而不是简单的字串;
4.在同一台计算机上,注册表可以存储多个用户的特性。
注册表的特点有:
1.注册表允许对硬件、系统参数、应用程序和设备驱动程序进行跟踪配置,这使得修改某些设置后不用重新启动成为可能。
2.注册表中登录的硬件部分数据可以支持高版本Windows的即插即用特性。当Windows检测到机器上的新设备时,就把有关数据保存到注册表中,另外,还可以避免新设备与原有设备之间的资源冲突。
3.管理人员和用户通过注册表可以在网络上检查系统的配置和设置,使得远程管理得以实现。
我们在前面已经详细介绍了注册表的由来与基本结构。发现注册表比较复杂,但又安排得非常有条理,能有效地提高工作效率,为系统的维护提供了必要条件。由于注册表是一个二进制的配置数据库文件(Windows的命根子),因而,用户无法直接存取注册表。为了让高级用户能够编辑注册表,Windows2000提供了注册表编辑器“c”和“Regedt32”。对这种只使用Windows提供的注册表编辑器进行编辑的操作。
编辑器在安装Windows时已经被安装到硬盘中了,但是并未在“附件”程序组中建有快捷方式。用户如果需要使用注册表编辑器,可以在“运行”对话框内输入Regedt32或Regedit即可打开注册表编辑器,如图:
或者在“命令提示符”中执行Regedt32.exe也可以进入注册表编辑器,
如图:
后面的内容将介绍注册表编辑器的使用方法,如创建删除主键、子键以及键值等,同时还将给出一些修改注册表的实例
注册表数据结构
使用注册表编辑器之前,首先得了解注册表的数据结构,例如注册表的显示方式、主键与子键、键值项数据的类型等等。
注册表显示方式
在Windows系统中,注册表是采用“关键字”及其“键值”来描述登录项及其数据的。所有的关键字都是以“HKEY”作为前缀开头。实际上,“关键字”是一个句柄。这种约定使得系统及应用程序的开发人员,可以在使用注册表中的API函数时把它用于应用程序的开发中。为此,Windows提供了若干API函数,以便在开发 for Windows 应用程序时添加、修改、查询和删除注册表的登录项。 在注册表中,关键字可以分为两类:一类是由系统定义的,一般都称为“预定义关键字”;另一类是由应用程序定义的,由于安装的应用软件不同,其登录项也就不同。在Windows系统中,打开注册表编辑器,可以看到注册表中的关键字,如图:
注册表通过主关键字(最上层的为“根键”,例如下图中的HKEY_CURRENT_USERS就是一个根键,标题栏上也有显示)和子键来管理各种信息,下图中的“Keyboard Layout”是一个主键,展开后就可以看到它里面的子键。注册表中的所有信息是以各种形式的“键值项数据”保存下来,如下图中的键值项Attributes的数据为“REG_DWORD:0”。其中“REG_DWORD”是该键值的数据类型;“0”是代表该键值被赋予的数值。
在注册表的左边窗口中,所有的数据都是通过一种树状结构,以键和子键的方式组织起来,十分类似于资源管理器内的目录结构,如下图。每个键都包含有一组特定的信息,每个键的键名都是与它所包含的信息相关的(注册表内是以英文的方式出现,比如‘Control Panel’表示的是控制面板内的一些内容)。
如果这个键包含子键,则在注册表编辑器窗口的左边出现一个“+”号,用来表示在这个文件夹内还有好多内容。如果这个文件夹被用户打开了,那么“+”号就变为“-”号,与我们使用资源管理器的方法是一样的,如图:
注册表中的“键值数据项”的类型
在注册表中,“键值项数据”可分为下面三种类型。
二进制(BINARY)
在注册表中,二进制是没有长度限制的,可以是任意个字节的长度。在注册表编辑器中,二进制数据以十六进制的方式显示出来,如下图中的“CustomColors”的键值就是一个二进制数据,
如图:
双击键值名,出现如下图所示的“编辑二进制数值”对话框,我们可以在二进制和十六进制之间进行切换。
DWORD值(DWORD)
DWORD值是一个32位(4个字节,即双字)长度的数值。在注册表编辑器中,你将会发现系统以十六进制的方式显示DWORD值,如图:
在编辑DWORD数值时,可以选择用二进制、十进制或是十六进制的方式进行输入,如图:
字符串值(SZ)
在注册表中,字符串值一般用来表示文件的描述、硬件的标识等。通常它由字母和数字组成。下图文本输入栏中的内容即为一个键值,它是一种字符串值类型。通过键值名、键值就可以组成一种键值项数据,这就相当于Win.ini、System.ini文件中小节下的设置行。其实,使用注册表编辑器将这些键值项数据导出后,其形式与.ini文件中的设置完全一样。 
注册表数据类型
注册表的键中包含着各种不同格式的数据。数据类型可以这样来分类:
通用数据类型--RegEdit、RegEdt32及其它绝大多数注册表工具都支持,并能够对之进行编辑的数据类型。
Windows NT 专用数据类型--RegEdt32和另外几个注册表工具支持,并能够对其进行编辑的数据类型。
组件/应用程序专用的特殊数据类型--注册表工具支持这些数据类型,但是对于程序而言是有限度的。
用户则只能将其作为二进制数进行编辑。
实际上,注册表工具也可以对不支持的数据类型进行编辑,包括那些显示为REG_UNKNOWN类型的数据。但是编辑仅能在二进制模式下进行,这就需要用户对数据对象的格式非常了解。对于那些需要手工修改注册 挠没Ю此担斫饷恳恢质堇嘈鸵约懊恳恢掷嘈褪莸拇娲⒏袷绞欠浅V匾摹?/p>
现有注册表数据类型
类 型 | 类型索引 | 大 小 | 说 明 |
REG_BINARY | 3 | 0~多个字节 | 可以包含任何数据的二进制对象颜色描述 |
REG_COLOR_RGB | * | 4字节 | 颜色描述 |
REG_DWORD | 4 | 4字节 | DWORD值 |
REG_DWORD_BIG_ENDIAN | 5 | 4字节 | 一个DWORD值的逆序存储形式 |
REG_DWORD_LITTLE_ENDIAN | 4 | 4字节 | DWORD值 |
REG_EXPAND_SZ | 2 | 0~多个字节 | 包含环境变量占位符的字符串 |
REG_FILE_NAME | * | 0~多个字节 | 文件名 |
REG_FILE_TIME | * | 未知 | 文件时间 |
REG_FULL_RESOURCE_DESCRIPTOR | 9 | 未知 | 硬件资源列表 |
REG_LINK | 6 | 0~多个字节 | 命名一个符号链接(symbolic link)的Unicode串 |
REG_MULTI_SZ | 7 | 0~多个字节 | 以null字符分隔的字符串集合,集合中的最后一个字符串以两个null字符结尾 |
REG_NONE | 0 | 未知 | REG_NONE类型的对象无须分类,它与REG_UNKNOWN类型不同 |
REG_RESOURCE_LIST | 8 | 未知 | 设备使用的资源列表 |
REG_RESOURCE_REQUIREMENTS_ | 10 | 未知 | 驱动程序要求的资源列表 |
REG_SZ | 1 | 0~多个字节 | 以一个null字符线的字符串 |
REG_UNKNOWN | (未定义) | 未知 | 因为数据类型索引无效而无法确定的对象类型 |
以上就是关于初涉注册表的操作系统教程分享,更多操作系统知识请移步到>>操作系统频道。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
