注册表(C#)

   Windowa注册表是包含Windows安装,用户喜好以及以安装软件和设备的所有配置信息的核心储存库。COM组件必须把它的信息出存在注册表中,才能被客户程序使用。注册表也包含了一些系统配置的信息,这些信息根据操作系统的不同而不同。注册表中的所有信息都是分类保存的,“主键”是各个大的信息分类名称,注册表中的所有信息均被分类存放在相应的主键中。一般包括5个主键:HKEY_CLASSES_ROOT(保存在系统中注册的各类文件的控制名以及文件关联等信息),HKEY_CURRENT_USER(保存登陆到系统的当前用户的计算机的环境变量,桌面设置,应用程序设置,个人程序设置,网络连接等信息),HKEY_LOCAL_MACHINE(保存计算机的硬件,软件及操作系统的配置信息),HKEY_USERS(保存计算机所有用户的配置信息),HKEY_CURRENT_CONFIG(存放计算机当前的硬件配置信息,此主键实际上是HKEY_LOCAL_MACHINE中的一部分)。

 

操作注册表之前要导入命名空间:using Microsoft.Win32

Registry类是其中的一个常用类,有7个字段:ClassRoot、CurrentConfig、CurrentUser、DynData、LacalMachine、Performanceata、Users

Registry类是通过静态的只读字段来提供RegistryKey实例的

如:RegistryKey rk=Registry.LacalMachine;

 

1.)用OpenSubKey方法打开注册表

private void Form1_Load(object sender, EventArgs e)
{
    this.Box.Items.Clear();
    //创建RegistryKey实例
    RegistryKey rk = Registry.CurrentUser;
    //使用OpenSubKey方法打开HKEY_CURRENT_USER\Software项下的所有子项
    RegistryKey a = rk.OpenSubKey(@"Software");
    foreach(string str in a.GetSubKeyNames())
    {
        this.Box.Items.Add("子项名:" + str);
        RegistryKey b = a.OpenSubKey(str);
        foreach(string c in b.GetValueNames())
        {
            this.Box.Items.Add(c + b.GetValue(c));
        }
    }
}

2.)创建及修改注册表信息

//创建RegistryKey实例
RegistryKey rk = Registry.CurrentUser;
//使用OpenSubKey方法打开HKEY_CURRENT_USER\Software项
RegistryKey a = rk.OpenSubKey("Software", true);
RegistryKey b = a.CreateSubKey("111");
b.SetValue("1", "2");
//修改注册表
b.SetValue("1", "3");

通常情况下,只允许在本机修改注册表,而不允许远程修改注册表

3.)删除注册表中信息

(1)DeleteSubKey方法:删除不包含任何子项的子项

(2)DeleteSubKeyTree方法:彻底删除指定的子项目录,包括该子项以及其以下的全部子项(谨慎使用)

(3)DeleteValue方法:删除指定的键值对

 

posted @ 2015-10-07 11:29  追求沉默者  阅读(500)  评论(0编辑  收藏  举报