C#读、写、删除注册表

1.首先,必须导入空间"Microsoft.Win32"

2.利用Registry类,确定注册表的分支(ClassesRoot,CurrentUser,Users,LocalMachine,CurrentConfig)

 

using Microsoft.Win32;

 

RegistryKey key = Registry.LocalMachine;

3.创建/打开/删除注册表项

复制代码
RegistryKey key = Registry.LocalMachine;
//创建
//注意:注册表路径一定是"\\"而不是"\"
RegistryKey software = key.CreateSubKey("software\\MyApp");

//打开(true表示可以写入)
RegistryKey software = key.OpenSubKey("software\\MyApp",true); 
RegistryKey Product = software.CreateSubKey("Product");

//删除
key.DeleteSubKey("software\\MyApp",true);
//记得关闭,两个都要关
key.Close();
ProductID.Close();
复制代码

4.创建/打开/删除键值

复制代码
RegistryKey key = Registry.LocalMachine;
RegistryKey software = key.OpenSubKey("software\\My",true); 
//写入
software.SetValue("ProductID", "Leo Tian's blog"); 
//读取
string info = "";
info = software.GetValue("ProductID").ToString();
//删除
software.DeleteValue("test");
//关闭
software.Close()
复制代码

5.最后贴出两个判断函数

复制代码
//判断项目是否存在
private bool IsRegeditItemExist(RegistryKey RegBoot, string ItemName)
{
    if (ItemName.IndexOf("\\") <= -1)
    {
        string[] subkeyNames;
        subkeyNames = RegBoot.GetValueNames();
        foreach (string ikeyName in subkeyNames)  //遍历整个数组
        {
            if (ikeyName == ItemName) //判断子项的名称
            {
                return true;
            }
        }
        return false;               
    }
    else
    {
        string[] strkeyNames = ItemName.Split('\\');
        RegistryKey _newsubRegKey = RegBoot.OpenSubKey(strkeyNames[0]);
        string _newRegKeyName = "";
        int i;
        for(i=1;i<strkeyNames.Length;i++)
        {
            _newRegKeyName = _newRegKeyName + strkeyNames[i];
            if(i!=strkeyNames.Length-1)
            {
                _newRegKeyName = _newRegKeyName + "\\";
            }
        }
        return IsRegeditItemExist(_newsubRegKey,_newRegKeyName);
    }
}

//判断键值是否存在
private bool IsRegeditKeyExist(RegistryKey RegBoot, string RegKeyName)
{

    string[] subkeyNames;
    subkeyNames = RegBoot.GetValueNames();
    foreach (string keyName in subkeyNames)
    {

        if (keyName == RegKeyName)  //判断键值的名称
        {
            return true;
        }
    }
    return false;
}
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值