注册表(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方法:删除指定的键值对