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