C#注册表操作

用C#对注册表进行操作需要调用命名空间Microsoft.Win32中封装的二个类:Registry类和 RegistryKey类。在RegistryKey类中定义了二个方法用来创建注册表中的键和键值,它们是CreateSubValue

( )方法和SetValue ( )方法。

<1>CreateSubKey ( String keyName )方法:此方法是创建以后面的字符串为名称的子键。

<2>SetValue ( String keyName , String keyValue )方法:此方法不但可以用来重命名键值的数值,还可以用来创建新的键值。具体情况为:当打开的子键中,如果存在此键值,就把新值赋给他,

实现重命名操作。如果不存在,则创建一个新的键值。

首先导入要引用的命名空间:
Using Microsoft.Win32;

1.创建一个主键、子键并设定键值:
RegistryKey regit = Registry.LocalMachine ;
RegistryKey hardWare = regit.OpenSubKey ("HARDWARE" , true);//打开的项必须存在,否则会抛出异常,后面的布尔值“true”表示可以写入。
RegistryKey example =hardWare.CreateSubKey ("EXAMPLE");
RegistryKey subKey = example.CreateSubKey ("SUBKEY");
subKey.SetValue ("VALUE" , "1234");
regit.Close();
这段代码是在主键“HKEY_LOCAL_MACHIN”下面的“HAREWARE”主键下创建一个名为“EXAMPLE”的主键,再在此主键下面创建一个名称为“SUBKEY”的子键和名称为“VALUE”的键值,键

值的值为“1234”;

2.修改或创建指定键值名称的键值(如果指定的键值名称存在则修改否则就创建):
RegistryKey regit = Registry.LocalMachine;
RegistryKey hardWare = regit.OpenSubKey ("HARDWARE", true);//打开的项必须存在,否则会抛出异常,后面的布尔值“true”表示可以写入。
RegistryKey example = software.OpenSubKey ("EXAMPLE" , true);//打开的项必须存在,否则会抛出异常,后面的布尔值“true”表示可以写入。
RegistryKey subKey = software.OpenSubKey ("SUBKEY" , true);//打开的项必须存在,否则会抛出异常,后面的布尔值“true”表示可以写入。
subKey.SetValue("NEWVALUE" , "4321") ;
regit.Close();
由于刚才创建的“SUBKEY”子键不存在名为“NEWVALUE”的键值,所以这段代码是创建名为“NEWVALUE”的键值并设置键值的值为“47321”;

3.删除子键:
RegistryKey regit = Registry.LocalMachine;
RegistryKey hardWare = regit.OpenSubKey ("HARDWARE", true);//打开的项必须存在,否则会抛出异常,后面的布尔值“true”表示可以写入。
RegistryKey example = software.OpenSubKey ("EXAMPLE" , true);//打开的项必须存在,否则会抛出异常,后面的布尔值“true”表示可以写入。
example.DeleteValue("SUBKEY");//删除的项必须存在,否则会抛出异常。
regit.Close();

4.判断注册表中某项是否存在:
string[] subkeyNames;
RegistryKey regit = Registry.LocalMachine;
RegistryKey hardWare = regit.OpenSubKey("HARDWARE");
RegistryKey example = hardWare.OpenSubKey("EXAMPLE");
subkeyNames = example.GetSubKeyNames();//取得该项下所有子项的名称的集合,并传递给数组
foreach (string keyName in subkeyNames) //遍历整个数组
{
if (keyName == "SUBKEY") //判断子项的名称
{
regit.Close();
return true;
}
}
regit.Close();
return false;

5.判断某项键值是否存在:
string[] subKeyValues;
RegistryKey regit = Registry.LocalMachine;
RegistryKey hardWare = regit.OpenSubKey("HARDWARE");
RegistryKey example = hardWare.OpenSubKey("EXAMPLE");
RegistryKey subKey = software.OpenSubKey ("SUBKEY");
subKeyValues = subKey.GetValueNames();//取得该项下所有键值的名称的集合,并传递给数组
foreach (string keyValue in subKeyValues)
{
if (keyValue == "VALUE") //判断键值的名称
{
regit.Close();
return true;
}
}
regit.Close();
return false;

 

摘自:http://www.cnblogs.com/liukemng/archive/2010/12/03/1895651.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值