(一)写入 1.建立文件 建立一个注册表格式文件: *.reg,内容如下:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE/SOFTWARE/Test] "server"="192.168.66.22" "database"="NorthWind" "user"="XiaoWang" "Password"="123456" 其中: I. [HKEY_LOCAL_MACHINE/SOFTWARE/Test] : 表示路径,如果路径不存在,系统会自动创建路径 II. "server"="192.168.66.22" "database"="NorthWind" "user"="XiaoWang" "Password"="123456" 表示: 键和值,左边是键,右边是键的值。 在读取时根据键读取. 2.双击运行即可。 它会自动将键值放到配置好的路径下面.
(二) 读取 打开命名空间: using Microsoft.Win32; 1.方法 //参数1表示路径. 如: HKEY_LOCAL_MACHINE/SOFTWARE //参数2表示键. 自定义的 public static object GetRegValue(string strRegPath,string strName) { strRegPath = strRegPath.Trim(); //接收值的对象 object objRet;
// 如果名称为空,则抛出一个参数为空的异常。 if (strName == "") { throw new ArgumentNullException(strName,"键值不能为空!"); }
//去除"/"字符 if ( strRegPath.StartsWith("//") ) { strRegPath = strRegPath.Substring(1,strRegPath.Length - 1); } if ( strRegPath.EndsWith("//") ) { strRegPath = strRegPath.Substring(0,strRegPath.Length - 1); }
//拆分根键和路径 string strRootKey,strPath; int intIndex = strRegPath.IndexOf("//");
strRootKey = strRegPath.Substring(0,intLoc).ToUpper();
strPath = strRegPath.Substring(intIndex + 1,strRegPath.Length - intIndex - 1); RegistryKey _root; switch( strRootKey ) { case "HKEY_CLASSES_ROOT": _root = Registry.ClassesRoot; break; case "HKEY_CURRENT_CONFIG": _root = Registry.CurrentConfig; break; case "HKEY_CURRENT_USER": _root = Registry.CurrentUser; break; case "HKEY_DYN_DATA": _root = Registry.DynData; break; case "HKEY_LOCAL_MACHINE": _root = Registry.LocalMachine; break; case "HKEY_PERFORMANCE_DATA": _root = Registry.PerformanceData; break; case "HKEY_USERS": _root = Registry.Users; break; default: throw new Exception("找不到路径!"); }
try { //打开注册表路径的键 RegistryKey regKey = _root.OpenSubKey(@strPath); //取值 objRet = regKey.GetValue(strName); } catch(Exception e) { throw e; }
return objRet; }
2.用法: string strConnectString = GetRegValue(@"HKEY_LOCAL_MACHINE/SOFTWARE/Test","strConnString").ToString();
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=519087