抗癌龙头股:Microsoft Windows用什么存储系统和应用程序的设置信息?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/09 06:09:01

Microsoft Windows用注册表存储系统和应用程序的设置信息.注册表(Registry,繁体中文版Windows称之为登录)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。从Microsoft Windows 95开始,注册表在系统中得到应用。注册表这个架构一直沿用至今。

数据结构
注册表由键(或称“项”)、子键(子项)和值项构成。一个键就是分支中的一个文件夹,而子键就是这个文件夹中的子文件夹,子键同样是一个键。一个值项则是一个键的当前定义,由名称、数据类型以及分配的值组成。一个键可以有一个或多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为该键的默认值。

在注册表编辑器(Regedit.exe)中,数据结构显示如下,其中,command键是open键的子键,(默认)表示该值是默认值,值名称为空,其数据类型为REG_SZ,数据值为%systemroot%/system32/NOTEPAD.EXE "%1

以上信息的意义是:txt类型的文件在右键菜单里的“打开”一项使用的程序是“NOTEPAD.EXE”,即用记事本打开文件。

数据类型
注册表的数据类型主要有以下五种:

显示类型(在编辑器中) 数据类型 说明
REG_SZ 字符串 文本字串
REG_MULTI_SZ 多字符串 含有多个文本值的字符串
REG_BINARY 二进制数 二进制值,以十六进制显示。
REG_DWORD 双字 一个32位的二进制值,显示为8位的十六进制值。

此外,注册表还有其他的数据类型,但是均不常用:

REG_DWORD_BIG_ENDIAN
REG_DWORD_LITTLE_ENDIAN
REG_FULL_RESOURCE_DESCRIPTOR
REG_QWORD
REG_FILE_NAME

注册表的分支
注册表有五个分支,下面是这五个分支的名称及作用:

名称 作用
HKEY_CLASSES_ROOT 存储Windows可识别的文件类型的详细列表,以及相关联的程序。
HKEY_CURRENT_USER 存储当前用户设置的信息。
HKEY_LOCAL_MACHINE 包括安装在计算机上的硬件和软件的信息。
HKEY_USERS 包含使用计算机的用户的信息。
HKEY_CURRENT_CONFIG 这个分支包含计算机当前的硬件配置信息。

注册表的存储方式
注册表的存储位置随着Windows的版本变化而不同。在最新的Windows XP中,注册表被分成多个文件存储,每一个文件被称为一个配置单元。 以下是一些配置单元文件的说明:

名称 在注册表中位置 作用
SYSTEM HKEY_LOCAL_MACHINE\SYSTEM 存储计算机硬件和系统的信息
NTUSER.DAT HKEY_CURRENT_USER 存储用户参数选择的信息
SAM HKEY_LOCAL_MACHINE\SAM 用户及密码的数据库
SECURITY HKEY_LOCAL_MACHINE\SECURITY 安全性设置信息
SOFTWARE HKEY_LOCAL_MACHINE\SOFTWARE 安装的软件信息
DEFAULT HKEY_USERS\DEFAULT 缺省启动用户的信息

历史
发布
在Windows 95发布之前,Windows系统及应用程序的信息被存储在ini文件中,这就是注册表的前身。但是这么做有着致命弱点:因为每一个程序都会新安装一个或多个ini文件,来存储程序信息,导致信息的分布极为零乱;而且,ini文件要求他的大小必须在64KB之内,所以ini文件不便于使用和管理。 注册表在Windows 95中被引入,解决了ini文件的问题,程序在安装时,不再将数据写入ini文件,而直接通过API写入注册表。

发展
在之后的Windows版本中,注册表得到了进一步的发展。
在Windows NT系列中,系统为每一个用户在用户目录下创建了一个自身的注册表空间,而系统的设置被存放在系统文件夹中。
到了Windows 2000中,更是增加了REGEDT32.exe这样一个新的注册表编辑器,与regedit.exe相比,增加了权限的设定。
随着Windows XP的发布,Microsoft公司又剔除了REGEDT32.exe注册表编辑器,转而在regedit.exe中,增加了权限设定功能。同时,这个版本的注册表是64位的,这导致了一些以前可以运行的程序在Windows XP中无法运作。

注册表、INI、SYS等