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.对于已经存在的键值或项,则直接覆盖不抛出异常
更多: