C# 访问操作注册表整理

一、.net注册表操作简介

.net中Registry 类RegistryKey 类提供了操作注册表的接口

RegistryValueKind,用于指定操作注册表的数据类型。

二、使用实例

//获取子节点数量
Console.WriteLine(Registry.LocalMachine.SubKeyCount);

//获取所有自己点的键值
string[] subs = Registry.LocalMachine.GetSubKeyNames();
foreach (var item in subs)
{
    Console.WriteLine(item);
}

//打开子节点
RegistryKey sub1 = Registry.LocalMachine.OpenSubKey(subs[0]);
Console.WriteLine(sub1.Name); //HKEY_LOCAL_MACHINE\BCD00000000

//打开子节点2,特别说明不能\开头,不能包含根节点
RegistryKey sub2 = Registry.LocalMachine.OpenSubKey(@"BCD00000000\Description", true);
Console.WriteLine(sub2.Name);//HKEY_LOCAL_MACHINE\BCD00000000\Description

//获取项下的 键值
string[] names = sub2.GetValueNames();
foreach (var item in names)
{
    //获取值
    Console.WriteLine(item + "--->" + sub2.GetValue(item));
}

//特别注意,如果想写入内容,在打开注册表的时候writable,需要设置成true
//创建键值
sub2.SetValue("zhangsan", "1234", RegistryValueKind.String);

//创建子项
RegistryKey sub3 = sub2.CreateSubKey("sub3");
sub3.SetValue("sub3_key", 1100, RegistryValueKind.DWord);

三、特别说明

1.打开注册表示,不能\开头,不能包含根节点

//打开子节点2,特别说明不能\开头,不能包含根节点
RegistryKey sub2 = Registry.LocalMachine.OpenSubKey(@"BCD00000000\Description", true);
Console.WriteLine(sub2.Name);//HKEY_LOCAL_MACHINE\BCD00000000\Description

2.写入注册表当前程序需要有足够的权限,推荐一管理员身份运行当前程序。

3.如果想写入内容,在打开注册表的时候writable,需要设置成true

4.对于已经存在的键值或项,则直接覆盖不抛出异常

更多:

Registry 类

RegistryKey 类

注册表相关枚举

C#如何以管理员身份运行程序(转)

posted @ 2017-03-19 11:29  天马3798  阅读(3996)  评论(0编辑  收藏  举报