C#中对注册表的操作
Windows 操作系统的注册表包含了很多有关计算机运行的配置方式,打开注册表我们可以看到注册表是按类似于目录的树结构组织的,其中第二级目录包含了五个预定义主键分别是:HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_CONFIG。
下面我们来分别解释这5个类的作用 HKEY_CLASSES_ROOT该主键包含了文件的扩展名和应用程序的关联信息以及Window Shell和OLE用于储存注册表的信息。该主键下的子键决定了在WINDOWS中如何显示该类文件以及他们的图标,该主键是从HKEY_LCCAL_MACHINE/SOFTWARE/Classes映射过来的。 HKEY_CURRENT_USER该主键包含了如用户窗口信息,桌面设置等当前用户的信息。 HKEY_LOCAL_MACHINE主键包含了计算机软件和硬件的安装和配置信息,该信息可供所有用户使用 HKEY_USERS该主键记录了当前用户的设置信息,每次用户登入系统时,就会在该主键下生成一个与用户登入名一样的子键,该子键保存了当前用户的桌面设置、背景位图、快捷键,字体等信息。一般应用程序不直接访问改主键,而是通过主键HKEY_CURRENT_USER进行访问。 HKEY_CURRENT_CONFIG该主键保存了计算机当前硬件的配置信息,这些配置可以根据当前所连接的网络类型或硬件驱动软件安装的改变而改变。 C#也支持对注册表的编辑,.NET框架在Microsoft.Win32名字空间中提供了两个类来操作注册表:Registry和RegistryKey。这两个类都是密封类不允许被继承。下面我们分别来介绍这两个类。 Registry类提供了7个公共的静态域,分别代表7个基本主键(其中两个在XP系统中没有,在这就不介绍了)分别是:Registry.ClassesRoot,Registry.CurrentUser,Registry.LocalMachine,Registry.Users,Registry.CurrentConfig。它们分别对应哪几个键我想各位一看就会知道吧。 RegistryKey类中提供了对注册表操作的方法。要注意的是操作注册表必须符合系统权限,否则将会抛出错误。 下面我们就来几个操作注册表常用的几个方法 创建子键的方法原型为:
public RegistryKey CreateSubKey(string sunbkey); |
public RegistryKey OpenSubKey(string name); public RegistryKey OpenSubKey(string name,bool writable); |
public static RegistryKey OpenRemoteBaseKey(RegistryHive hKey,string machineName); |
public void DeleteKey(string subkey); |
public void DeleteKeyTree(string subkey); |
public object GetValue(string name); public object GetValue(string name,object defaultValue); |
public object SetValue(string name,object value); |