C#读,写,删除注册表

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

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. using Microsoft.Win32;  


 

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

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. RegistryKey key = Registry.LocalMachine;  


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

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. RegistryKey key = Registry.LocalMachine;  
  2. //创建  
  3. //注意:注册表路径一定是"\\"而不是"\"  
  4. RegistryKey software = key.CreateSubKey("software\\MyApp");  
  5.   
  6. //打开(true表示可以写入)  
  7. RegistryKey software = key.OpenSubKey("software\\MyApp",true);   
  8. RegistryKey Product = software.CreateSubKey("Product");  
  9.   
  10. //删除  
  11. key.DeleteSubKey("software\\MyApp",true);  
  12. //记得关闭,两个都要关  
  13. key.Close();  
  14. ProductID.Close();  


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

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. RegistryKey key = Registry.LocalMachine;  
  2. RegistryKey software = key.OpenSubKey("software\\My",true);   
  3. //写入  
  4. software.SetValue("ProductID""Leo Tian's blog");   
  5. //读取  
  6. string info = "";  
  7. info = software.GetValue("ProductID").ToString();  
  8. //删除  
  9. software.DeleteValue("test");  
  10. //关闭  
  11. software.Close()  


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

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. //判断项目是否存在  
  2. private bool IsRegeditItemExist(RegistryKey RegBoot, string ItemName)  
  3. {  
  4.     if (ItemName.IndexOf("\\") <= -1)  
  5.     {  
  6.         string[] subkeyNames;  
  7.         subkeyNames = RegBoot.GetValueNames();  
  8.         foreach (string ikeyName in subkeyNames)  //遍历整个数组  
  9.         {  
  10.             if (ikeyName == ItemName) //判断子项的名称  
  11.             {  
  12.                 return true;  
  13.             }  
  14.         }  
  15.         return false;                 
  16.     }  
  17.     else  
  18.     {  
  19.         string[] strkeyNames = ItemName.Split('\\');  
  20.         RegistryKey _newsubRegKey = RegBoot.OpenSubKey(strkeyNames[0]);  
  21.         string _newRegKeyName = "";  
  22.         int i;  
  23.         for(i=1;i<strkeyNames.Length;i++)  
  24.         {  
  25.             _newRegKeyName = _newRegKeyName + strkeyNames[i];  
  26.             if(i!=strkeyNames.Length-1)  
  27.             {  
  28.                 _newRegKeyName = _newRegKeyName + "\\";  
  29.             }  
  30.         }  
  31.         return IsRegeditItemExist(_newsubRegKey,_newRegKeyName);  
  32.     }  
  33. }  
  34.   
  35. //判断键值是否存在  
  36. private bool IsRegeditKeyExist(RegistryKey RegBoot, string RegKeyName)  
  37. {  
  38.   
  39.     string[] subkeyNames;  
  40.     subkeyNames = RegBoot.GetValueNames();  
  41.     foreach (string keyName in subkeyNames)  
  42.     {  
  43.   
  44.         if (keyName == RegKeyName)  //判断键值的名称  
  45.         {  
  46.             return true;  
  47.         }  
  48.     }  
  49.     return false;  
  50. }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值