一、.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[]);
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", "", RegistryValueKind.String); //创建子项
RegistryKey sub3 = sub2.CreateSubKey("sub3");
sub3.SetValue("sub3_key", , 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#如何以管理员身份运行程序(转)

C# 访问操作注册表整理的更多相关文章

  1. [荐]使用Js操作注册表

    使用Js操作注册表 要操作注册表需要通过ActiveX控件调用WScript.shell对象,通过该对象的一些方法来操作. WshShell对象:可以在本地运行程序.操纵注册表内容.创建快捷方式或访问 ...

  2. c++ 操作注册表

    1.       注册表简介 注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件,用于存储系统和应用程序的设置信息.16位驱动在Winnt (Win ...

  3. win7 64bit+vs2010 操作注册表

    注册表五个根键 HKEY_CLASSES_ROOT--管理文件系统  HKEY_LOCAL_MACHINE--管理当前系统硬件配置  HKEY_LOCAL_USER--管理系统当前用户配置  HKEY ...

  4. Atitit.操作注册表 树形数据库 注册表的历史 java版本类库总结

    Atitit.操作注册表 树形数据库 注册表的历史 java版本类库总结 1. 注册表是树形数据库 1 2. 注册表的由来 1 3. Java  操作注册表 2 3.1. 使用Preferences  ...

  5. 对Jscript操作注册表接口的一点不解

    作者:朱金灿 来源:http://blog.csdn.net/clever101 要操作注册表需要通过ActiveX控件调用WScript.shell对象,通过该对象的一些方法来操作.Wshshell ...

  6. python3 操作注册表

    1.1 读取 import winreg key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,r"Software\Microsoft\Windows ...

  7. Win64 驱动内核编程-6.内核里操作注册表

    内核里操作注册表 RING0 操作注册表和 RING3 的区别也不大,同样是"获得句柄->执行操作->关闭句柄"的模式,同样也只能使用内核 API 不能使用 WIN32 ...

  8. [转]C#操作注册表

    原文链接:http://www.cnblogs.com/txw1958/archive/2012/08/01/csharp-regidit.html 下面我们就来用.NET下托管语言C#注册表操作,主 ...

  9. .Net操作注册表--un

    C#操作注册表 导入命名空间 Using MicroSoft.Win32;//64位系统装的64位版本

随机推荐

  1. WebSocket原理说明

    WebSocket原理说明 众所周知,Web应用的通信过程通常是客户端通过浏览器发出一个请求,服务器端接收请求后进行处理并返回结果给客户端,客户端浏览器将信息呈现.这种机制对于信息变化不是特别频繁的应 ...

  2. 【深入Struts2】获取ServletAPI的三种方式

    一:获取servletAPI的三种方法 在传统的Web开发中,经常会用到Servlet API中的HttpServletRequest.HttpSession和ServletContext.Strut ...

  3. 使用php mcrypt加密解密

    数字签名:对数据和私钥进行hash运算得到消息摘要,连同消息本身一块发给客户端.数据签名强调客户端接收到的数据是来自特定服务端,服务端具有对数据不可否认性.客户端通过确认此次签名的正确性来判断拿到的消 ...

  4. CF1010D Mars rover [位运算,DP]

    题目传送门 Mars Rover 格式难调,题面就不放了. 分析: 今天考试的时候考了这道题目的加强版,所以来做. 其实也并不难,我们建立好树形结构以后先把初始权值全部求出,然后就得到了根节点的初始值 ...

  5. 过滤器中处理multipart/form-data头部的post请求request.getParameter(")获取不到参数问题

    如果不是文件类型请求,我们使用request.getParameter("");方法是可以获取到参数内容的,如果是文件类型的请求即请求的头部信息为“multipart/form-d ...

  6. Codeforces.862D.Mahmoud and Ehab and the binary string(交互 二分)

    题目链接 \(Description\) 有一个长为\(n\)的二进制串,保证\(01\)都存在.你可以询问不超过\(15\)次,每次询问你给出一个长为\(n\)的二进制串,交互库会返回你的串和目标串 ...

  7. 【LCA】BZOJ1776-[Usaco2010 Hol]cowpol 奶牛政坛

    [题目大意] 一棵n个点的树,树上每个点属于一个党派,要求每个党派的最远距离点.两点间距离为两点间边的个数. [思路] yy一下可知,最远距离点中必有一个是该党派深度最深的一个,那么我们就记下最深的点 ...

  8. Atcoder Grand Contest 010 C - Cleaning 树贪心(伪)

    C - Cleaning 题目连接: http://agc010.contest.atcoder.jp/tasks/agc010_c Description There is a tree with ...

  9. Redis如何处理客户端连接

    本文主要介绍了 Redis 处理客户端连接的一些内部实现机制,包括连接处理.超时.缓冲区等一系列内容. 注:本文所述内容基于 Redis2.6 及以上版本. 连接的建立 Redis 通过监听一个 TC ...

  10. 使用 IntraWeb (1) - 先测试如何部署为 Asp.Net 的应用

    IntraWeb 14 可以部署为 Asp.Net 的应用程序, 需要 NET Framework 4.5 和 ASP.NET MVC 4 或之上版本的支持; 这下, 只能用虚拟主机的朋友有福了! 我 ...