C#操作注册表函数

一web方式

  1.  /// <summary>
  2.     /// 注册表的读取
  3.     /// </summary>
  4.     /// <returns></returns>
  5.     public void ReadRegedit()
  6.     {
  7.         RegistryKey rk = Registry.CurrentUser;
  8.         RegistryKey softWare = rk.OpenSubKey("Software");
  9.         RegistryKey microsoft = softWare.OpenSubKey("Microsoft");   
  10.         RegistryKey windows = microsoft.OpenSubKey("Windows");
  11.         RegistryKey current = windows.OpenSubKey("CurrentVersion");
  12.         RegistryKey explorer = current.OpenSubKey("Explorer");
  13.         RegistryKey shell = explorer.OpenSubKey(@"Shell Folders");
  14.         foreach (string b in shell.GetValueNames())//这里用shell.GetValueNames()不是shell.GetSubKeyNames()
  15.         {
  16.             Response.Write( b+"            "+ shell.GetValue(b).ToString());
  17.             Response.Write("<br/>");
  18.               
  19.         }
  20.        
  21.    
  22.     }
  23.     /// <summary>
  24.     /// 注册表的写入
  25.     /// </summary>
  26.     /// <returns></returns>
  27.     public bool WriteRegedit()
  28.     {
  29.         try
  30.         {
  31.             RegistryKey rk = Registry.CurrentUser;
  32.             RegistryKey softWare = rk.OpenSubKey("Software");
  33.             RegistryKey microsoft = softWare.OpenSubKey("Microsoft");
  34.             RegistryKey windows = microsoft.OpenSubKey("Windows");
  35.             RegistryKey current = windows.OpenSubKey("CurrentVersion");
  36.             RegistryKey explorer = current.OpenSubKey("Explorer");
  37.             RegistryKey shell = explorer.OpenSubKey(@"Shell Folders"true);//这里必须加true就是得到写入权限
  38.             RegistryKey key = shell.CreateSubKey("swort");//创建swort目录
  39.             key.SetValue("swort""test");
  40.             //在swort目录下建立写入swort test
  41.             Response.Write("写入成功!!!!!!!!!");
  42.             return true;
  43.         }
  44.         catch
  45.         {
  46.             return false;
  47.         }
  48.         
  49.     }
  50.     /// <summary>
  51.     /// 注册表的删除
  52.     /// </summary>
  53.     /// <returns></returns>
  54.     public bool DeleteRegedit()
  55.     {
  56.         try
  57.         {
  58.             RegistryKey rk = Registry.CurrentUser;
  59.             RegistryKey softWare = rk.OpenSubKey("Software");
  60.             RegistryKey microsoft = softWare.OpenSubKey("Microsoft");
  61.             RegistryKey windows = microsoft.OpenSubKey("Windows");
  62.             RegistryKey current = windows.OpenSubKey("CurrentVersion");
  63.             RegistryKey explorer = current.OpenSubKey("Explorer");
  64.             RegistryKey shell = explorer.OpenSubKey(@"Shell Folders",true);
  65.             RegistryKey swort = shell.OpenSubKey("swort",true);//这里必须加true就是得到写入权限
  66.             swort.DeleteValue("swort");//删除swort的值   这个连键值一起删除了 剩下一个
  67.             shell.DeleteSubKey("swort",false);//删除swort这个目录   要删除这个目录 必须具有权限
  68.            
  69.             Response.Write("删除成功!!!!!!!!!");
  70.             return true;
  71.         }
  72.         catch
  73.         {
  74.             return false;
  75.         }
  76.         return true;
  77.     }
  78.     /// <summary>
  79.     /// 查询某个键值是否存在
  80.     /// </summary>
  81.     /// <returns></returns>
  82.     public bool ExistsRegedit()
  83.     {
  84.         RegistryKey rk = Registry.CurrentUser;
  85.         RegistryKey softWare = rk.OpenSubKey("Software");
  86.         RegistryKey microsoft = softWare.OpenSubKey("Microsoft");
  87.         RegistryKey windows = microsoft.OpenSubKey("Windows");
  88.         RegistryKey current = windows.OpenSubKey("CurrentVersion");
  89.         RegistryKey explorer = current.OpenSubKey("Explorer");
  90.         RegistryKey shell = explorer.OpenSubKey(@"Shell Folders");
  91.         if (shell.SubKeyCount != 0)
  92.         {
  93.             RegistryKey swort = shell.OpenSubKey("swort");
  94.             foreach (string b in swort.GetValueNames())
  95.             {
  96.                 if (b == "swort")
  97.                 {
  98.                     Response.Write("存在这个键!");
  99.                     return true;
  100.                 }
  101.             }
  102.             Response.Write("不存在这个键!");
  103.             return false;
  104.         }
  105.         else
  106.         { Response.Write("不存在这个键!");
  107.         return false;
  108.         }
  109.     }

二:Form方式

  private string GetRegistData(string name)
        {
           string registData;
           RegistryKey hkml = Registry.LocalMachine;
           RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);
           RegistryKey aimdir = software.OpenSubKey("MyTest",true);
           //RegistryKey aimdir1 = aimdir.OpenSubKey("Coop", true);
           registData = aimdir.GetValue(name).ToString();
           return registData;
        }
        //以上是读取的注册表中HKEY_LOCAL_MACHINE/SOFTWARE目录下的XXX目录中名称为name的注册表值;

        //2.向注册表中写数据
        private void WTRegedit(string name,string tovalue)
        {
           RegistryKey hklm = Registry.LocalMachine;
           RegistryKey software = hklm.OpenSubKey("SOFTWARE",true);
           RegistryKey aimdir = software.CreateSubKey("MyTest");
           aimdir.SetValue(name,tovalue);
        }
        //以上是在注册表中HKEY_LOCAL_MACHINE/SOFTWARE目录下新建XXX目录并在此目录下创建名称为name值为tovalue的注册表项;
        //aimdir.SetValue(abc,384,RegistryValueKind.DWord); 写双字节型
        //3.删除注册表中指定的注册表项
        private void DeleteRegist(string name)
        {
           string[] aimnames;
           RegistryKey hkml = Registry.LocalMachine;
           RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);
           RegistryKey aimdir = software.OpenSubKey("MyTest",true);
           aimnames = aimdir.GetSubKeyNames();
           foreach(string aimKey in aimnames)
           {
            if(aimKey == name)
             aimdir.DeleteSubKeyTree(name);
           }
        }
        //以上是在注册表中HKEY_LOCAL_MACHINE/SOFTWARE目录下XXX目录中删除名称为name注册表项;

        //4.判断指定注册表项是否存在
        private bool IsRegeditExit(string name)
        {
           bool _exit = false;
           string[] subkeyNames;
           RegistryKey hkml = Registry.LocalMachine;
           RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);
           RegistryKey aimdir = software.OpenSubKey("MyTest",true);
           subkeyNames = aimdir.GetSubKeyNames();
           foreach(string keyName in subkeyNames)
           {
            if(keyName == name)
            {
               _exit = true;
               return _exit;
            }
           }
           return _exit;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值