现在,随着.NET的出现,对注册表的操作变得很容易了。.NET类库包括一套类,Microsoft.Win32.Registry及Microsoft.Win32.RegistryKey,这些都提供了对Win32注册表访问函数的封装。在详细查阅这些类库之前,让我们先看一看注册表如何组织及你如何在.NET程序中使用它们。
如果你以前没有操作过注册表,那么最好的方法就是把它想象成系统上的文件夹。主文件夹相当于注册表中的主键;子文件夹相当于注册表中的副键。每一个副键也可以有一个或多个值,这些值就是实质数据存放地址。
硬盘上有唯一的根目录,注册表有几个主键,这正如一个蜂窝,如果你认识到这一类比,你就可以很好地理解注册表的结构。当Windows操作系统的版本不同时,主键的数量及名称也有些不相同。图A显示了NT操作系统的蜂窝结构的注册表。
图A
Hive name |
Intended use |
HKEY_Local_Machine |
保存如下方面的信息:系统硬件,安全设置,各种配置数据,启动设置等。 |
HKEY_Current_User |
保存系统中当前用户操作的信息,如颜色参数选择,环境变量,打印设置等等。 |
HKEY_Classes_Root |
保存COM,OLE,DDE方面的信息,与文件信息相类似。 |
HKEY_Users |
永久地保存特定用户的配置信息。 |
HKEY_Performance_Data |
一个注册表中不存在的虚拟的键,它能够被注册表API所访问。 |
HKEY_Current_Config |
实际上是HKEY_Local_Machine的副键,保存系统动态配置信息。 |
在通用情况下,你会对注册表的以下几个方面进行操作。
在这三个方面,最后两个通常是一些可访问的键,它们位于HKEY_Local_Machine主键的副健中。访问一个副健通常以根蜂窝为开始。例如,为了访问一个位于HKEY_Local_MachineSoftware名为MyKey的副健,你应该先从主键进入,再打开HKEY_Local_MachineSoftwareMyKey,就可以操作它所包含的值。