Csharp/C#教程:C#读写注册表的思路及代码分享

NET框架在Microsoft.Win32免费精选名字大全空间中提供了两个类来操作注册表:Registry和RegistryKey。这两个类都是密封类不允许被继承。下面我们分别来介绍这两个类。
Registry类提供了7个公共的静态域,分别代表7个基本主键(其中两个在XP系统中没有)分别是: 
Registry.ClassesRoot对应于HKEY_CLASSES_ROOT主键
 Registry.CurrentUser对应于HKEY_CURRENT_USER主键
 Registry.LocalMachine对应于HKEY_LOCAL_MACHINE主键
 Registry.User对应于HKEY_USER主键
 Registry.CurrentConfig对应于HEKY_CURRENT_CONFIG主键
 Registry.DynDa对应于HKEY_DYN_DATA主键
 Registry.PerformanceData对应于HKEY_PERFORMANCE_DATA主键
RegistryKey类中提供了对注册表操作的方法。要注意的是操作注册表必须符合系统权限,否则将会抛出错误。

创建子键的方法原型为:
publicRegistryKeyCreateSubKey(stringsunbkey);
参数sunbkey表示要创建的子键的名称或路径名。创建成功返回被创建的子键,否则返回null。
打开子键的方法原型为:
publicRegistryKeyOpenSubKey(stringname);
publicRegistryKeyOpenSubKey(stringname,boolwritable);
参数name表示要打开的子键名或其路径名,参数writable表示被打开的子键是否允许被修改,第一个方法打开的子键是只读的。
删除子键的方法原型为:
publicvoidDeleteSubKey(stringsubkey);
该方法用于删除指定的主键。如果要删除的子键还包含主键则删除失败,并返回一个异常,如果要彻底删除该子键极其目录下的子键可以用方法DeleteSubKeyTree,该方法原型如下:
publicvoidDeleteSunKeyTree(stringsubkey);
读取键值的方法原型如下:
publicobjectGetValue(stringname);
publicobjectGetValue(stringname,objectdefaultValue);
参数name表示键的名称,返回类型是一个object类型,如果指定的键不存在则返回null。如果失败又不希望返回的值是null则可以指定参数defaultValue,指定了参数则在读取失败的情况下返回该参数指定的值。
设置键值的方法原型如下:
publicobjectSetValue(stringname,objectvalue);
删除键值的方法原型如下:
publicvoidDeleteValue(stringname);
下面是本人自己写的测试小例,运行没有错误。
1.写入
代码如下:
try
   {
      RegistryKeyrsg=null;
      if(Registry.LocalMachine.OpenSubKey(“SOFTWARE\RING”).SubKeyCount<=0)
      {
         Registry.LocalMachine.DeleteSubKey(“SOFTWARE\RING”);
         Registry.LocalMachine.CreateSubKey(“SOFTWARE\RING”);
      }
      rsg=Registry.LocalMachine.OpenSubKey(“SOFTWARE\RING”,true);//true表示可以修改
      //if(rsg.GetValue(“TestReg”)==null)
      //{
      //   rsg.CreateSubKey(“TestReg”);
      //}
      //else
      //{
      //   rsg.DeleteSubKey(“TestReg”);              
      //}
      rsg.SetValue(“TestReg”,System.DateTime.Now.ToString());
      rsg.Close();
      }
 catch(Exceptionex)
     {
        this.label2.Text=ex.Message;
     }

2.读取
代码如下:
try
   {
      RegistryKeyrsg=null;
      rsg=Registry.LocalMachine.OpenSubKey(“SOFTWARE\RING”,true);
      if(rsg.GetValue(“TestReg”)!=null)//读取失败返回null
      {
         this.label2.Text=rsg.GetValue(“TestReg”).ToString();
      }
      else
         this.label2.Text=”该键不存在!”;
      rsg.Close();
   }
 catch(Exceptionex)
   {
      this.label2.Text=ex.Message;
   }

您可能感兴趣的文章:C#操作注册表的方法详解c#读写注册表示例分享C#注册表操作实现代码C#操作注册表的方法C#通过windows注册表获取软件清单的方法C#实现读取注册表监控当前操作系统已安装软件变化的方法C#设置软件开机自动运行的方法(修改注册表)使用C#在注册表中保存信息的例子C#设置自定义文件图标实现双击启动(修改注册表)C#WinForm中禁止改变窗口大小的方法WinForm通过操作注册表实现限制软件使用次数的方法

标签: 注册表

C语言实现静态链表的方法

c++ 指针与引用的区别介绍及使用说明

上述就是C#学习教程:C#读写注册表的思路及代码分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/905061.html

(0)
上一篇 2021年10月22日
下一篇 2021年10月22日

精彩推荐