• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#读、写、删除注册表

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#Socket连接请求超时机制发布时间:2022-07-13
下一篇:
C#写的一个视频转换解码器发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap