Windows registry简单介绍

来源:互联网 发布:淘宝店铺转让后果严重 编辑:程序博客网 时间:2024/05/16 08:07

1. 注册表数据文件的位置

  Windows注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件.

  2000/XP注册表文件按功能来分,也是由系统注册表文件和用户注册表文件两类组成的

  注册表文件存放系统的所有设置信息:

  系统设置和缺省用户配置数据存放在系统/系统文件夹/SYSTEM32/CONFIG文件夹下的6个文件,DEFAULT、SAM、SECURITY、SOFTWARE、USERDIFF和SYSTEM中,而用户的配置信息存放在系统所在磁盘的/Documents and Setting/文件夹,包括ntuser.dat ntuser.ini ntuser.dat.log.

 

2.注册表的作用.

注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。

 

  在系统中注册表是一个记录32位驱动的设置和位置的数据库。当操作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个BIOS支持的设备。无BIOS支持设备安装时必须需要驱动,这个驱动是独立于操作系统的,但是操作系统需要知道从哪里找到它们,文件名、版本号、其他设置和信息,没有注册表对设备的记录,它们就不能被使用。

  当一个用户准备运行一个应用程序,注册表提供应用程序信息给操作系统,这样应用程序可以被找到,正确数据文件的位置被规定,其他设置也都可以被使用。

 

3.与注册表相关的术语

  • HKEY :“根键”或“主键”,它的图标与资源管理器中文件夹的图标有点儿相像。Windows98将注册表分为六个部分,并称之为 HKEY_name,它意味着某一键的句柄。
  • key(键):它包含了附加的文件夹和一个或多个值。
  • subkey(子键):在某一个键(父键)下面出现的键(子键)。
  • branch(分支):代表一个特定的子键及其所包含的一切。一个分支可以从每个注册表的顶端开始,但通常用以说明一个键和其所有内容。
  • value entry(值项):带有一个名称和一个值的有序值。每个键都可包含任何数量的值项。每个值项均由三部分组成:名称,数据类型,数据。
  • 字符串(REG_SZ):顾名思义,一串ASCII码字符。如“Hello World”,是一串文字或词组。在注册表中,字符串值一般用来表示文件的描述、硬件的标识等。通常它由字母和数字组成。注册表总是在引号内显示字符串。
  • 二进制(REG_BINARY):如 F03D990000BC ,是没有长度限制的二进制数值,在注册表编辑器中,二进制数据以十六进制的方式显示出来。
  • 双 字(REG_DWORD):从字面上理解应该是Double Word ,双字节值。由1-8个十六进制数据组成,我们可用以十六进制或十进制的方式来编辑。如 D1234567 。
  • Default(缺省值):每一个键至少包括一个值项,称为缺省值(Default),它总是一个字串。

4.注册表的结构

 

l
l在注册表编辑器中注册表项是用控制键来显示或者编辑的。控制键使得找到和编辑信息项组更容易。因此,注册表使用这些条目。下面是5个控制键
HKEY_LOCAL_MACHINE
--HKEY_CLASSES_ROOT (单独出来)
--HKEY_CURRENT_CONFIG (单独出来)
HKEY_USERS
--HKEY_CURRENT_USER (单独出来)
通过单独出来控制可以比较容易编辑注册表。虽然它们都是独立地显示和编辑,但是它们之间是有联系的.独立地编辑相对来说显得更容易和有条理.
其实HKEY_CLASSES_ROOT 和HKEY_CURRENT_CONFIG是 HKEY_LOCAL_MACHINE的一部分。HKEY_CURRENT_USER是HKEY_USERS的一部分。
 
HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG的所有内容。每次计算机启动时,HKEY_CURRENT_CONFIG和HKEY_CLASSES_ROOT的信息被映射用以查看和编辑。

HKEY_CLASSES_ROOT其实就是HKEY_LOCAL_MACHINE/SOFTWARE/Classes,但是在HKEY_CLASSES_ROOT窗编辑相对来说显得更容易和有条理。
HKEY_USERS保存着缺省用户信息和当前登陆用户信息。当一个域成员计算机启动并且一个用户登陆,域控制器自动将信息发送到HKEY_CURRENT_USER里,而且HKEY_CURRENT_USER信息被映射到系统内存中。其他用户的信息并不发送到系统,而是记录在域控制器里。