现在的位置: 首页 > 综合 > 正文

C#注册表操作方法

2012年02月12日 ⁄ 综合 ⁄ 共 2212字 ⁄ 字号 评论关闭

(一)写入

   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();

抱歉!评论已关闭.