C# 我的注册表操作类
1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 5 using Microsoft.Win32; 6 using System.Collections; 7 8 namespace War3Screen 9 { 10 /// <summary> 11 /// 注册表操作类--kongfl888 2013 12 /// 13 /// </summary> 14 class RegOperator 15 { 16 17 /// <summary> 18 /// 获取某键下的某键值 19 /// </summary> 20 /// <param name="_registrykey">注册表基项如 Registry.CurrentUser</param> 21 /// <param name="mainKeystr">项的注册表键path</param> 22 /// <param name="name"></param> 23 /// <returns></returns> 24 public static string Getkey(RegistryKey _registrykey, string mainKeystr,string name) 25 { 26 string valueStr = string.Empty; 27 28 try 29 { 30 31 RegistryKey regKey = _registrykey; 32 RegistryKey mainKey = regKey.OpenSubKey(mainKeystr); 33 34 valueStr = mainKey.GetValue(name).ToString(); 35 } 36 catch { } 37 return valueStr; 38 39 } 40 41 42 /// <summary> 43 /// 设置和修改某键值 44 /// </summary> 45 /// <param name="_registrykey">注册表基项如 Registry.CurrentUser</param> 46 /// <param name="mainKeystr">项的注册表键path</param> 47 /// <param name="name">项名</param> 48 /// <param name="valueStr">项值</param> 49 /// <returns></returns> 50 public static bool Setkey(RegistryKey _registrykey, string mainKeystr, string name, string valueStr) 51 { 52 bool sc = false; 53 try 54 { 55 RegistryKey regKey = _registrykey; 56 RegistryKey mainKey = regKey.OpenSubKey(mainKeystr, true); 57 mainKey.SetValue(name, valueStr, RegistryValueKind.DWord); 58 59 sc = true; 60 } 61 catch { sc = false; } 62 return sc; 63 } 64 65 66 /// <summary> 67 /// 新建子键 68 /// </summary> 69 /// <param name="regKey">注册表基项如 Registry.CurrentUser</param> 70 /// <param name="SubKeyPath">子键路径</param> 71 /// <param name="SubKey">子键名</param> 72 /// <param name="keyValue">子键值</param> 73 public static bool Createkey(RegistryKey regKey, string SubKeyPath, string SubKey, string valueName, string keyValue, RegistryValueKind valueKind) 74 { 75 try 76 { 77 RegistryKey optionKey = regKey.OpenSubKey(SubKeyPath, true); 78 //添加子键和值 79 RegistryKey subkey = optionKey.CreateSubKey(SubKey); 80 subkey.SetValue(valueName, keyValue, valueKind); 81 return true; 82 } 83 catch 84 { 85 return false; 86 throw; 87 } 88 89 } 90 91 92 /// <summary> 93 /// 重载Createkey 94 /// </summary> 95 /// <param name="regKey"></param> 96 /// <param name="SubKeyPath"></param> 97 /// <param name="SubKey"></param> 98 public static bool Createkey(RegistryKey regKey, string SubKeyPath, string SubKey) 99 { 100 try 101 { 102 RegistryKey optionKey = regKey.OpenSubKey(SubKeyPath, true); 103 optionKey.CreateSubKey(SubKey); 104 return true; 105 } 106 catch 107 { 108 return false; 109 throw; 110 111 } 112 113 } 114 115 116 /// <summary> 117 /// 删除子键 118 /// </summary> 119 /// <param name="regKey">注册表基项如 Registry.CurrentUser</param> 120 /// <param name="SubKeyPath">子键路径</param> 121 /// <param name="SubKey">子键名</param> 122 public static bool DelKey(RegistryKey regKey, string SubKeyPath, string SubKey) 123 { 124 try 125 { 126 //打开注册表 127 128 RegistryKey optionKey = regKey.OpenSubKey(SubKeyPath, true); 129 130 string[] subKeys = optionKey.GetSubKeyNames(); 131 132 foreach (string akey in subKeys) 133 { 134 if (akey == SubKey) 135 { 136 optionKey.DeleteSubKeyTree(SubKey); 137 return true; 138 } 139 } 140 return false; 141 142 } 143 catch 144 { 145 return false; 146 throw; 147 } 148 } 149 150 151 152 153 } 154 }