亦是美网络

致力于操作系统应用与计算机网络技术的IT网站。

详解如何使用C#.NET进行注册表项和键值的创建、删除、修改、获取等操作

最近在写软件的时候,又使用到了C#操作系统注册表方面的编程知识,想要学习C#编程的同学,学会对系统注册表的键值创建、删除、修改、获取等操作是十分必要的,因为系统注册表里包含了大量的系统和软件安装信息,熟练掌握C#对注册表的操作使用,可以让我们在日常的小应用程序开发中得心应手,OK,下面亦是美网络小编就将自己在平常使用C#操作注册表的心得经验给大家分享一下,喜欢C#编程的同学赶紧看过来,对编程不感冒没有兴趣的同学请略过此文。

要使用C#对系统注册表进行操作,首先我们需要引入一个命名空间:

using Microsoft.Win32;

在这个命名空间下包含了许多对注册表进行操作的类,比如常用的RegistryKey类,这个类可以帮助我们定位到注册表最开头的分支,然后进行下一步的操作,下面以具体例子给大家讲解。

注册表开头分支,也叫根分支,分别是:HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USERS、HKEY_CURRENT_CONFIG。

声明:以下例子内容中涉及到了注册表的真实操作,如果对注册表不甚了解,请不要直接用以下例子进行操作。

1、使用C#打开注册表项

//使用RegistryKey的OpenSubKey()方法打开注册表里的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion,注意该方法后面还有一个bool类型的值true,这个代表可写入操作。

RegistryKey key = Registry.LocalMachine;

RegistryKey software = key.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion",true);

tips:如果注册表项不存在,则抛出异常。

2、使用C#创建注册表项

//使用RegistryKey的CreateSubKey()方法在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion下创建一个名字叫YiShiMei的项。

RegistryKey key = Registry.LocalMachine;

RegistryKey software = key.CreateSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\YiShiMei");

tips:如果当前注册表已经存在该项,不影响该操作的执行。

3、使用C#删除注册表项

//使用RegistryKey的DeleteSubKey()方法删除注册表中的SOFTWARE\Microsoft\Windows NT\CurrentVersion\YiShiMei项。

RegistryKey key = Registry.LocalMachine;

key.DeleteSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\YiShiMei",true);

tips:如果该项不存在,则抛出异常。

4、使用C#创建、删除、获取注册表键值

//不管是创建、获取、删除键值,首先都需要打开要设置/创建键值的注册表项

RegistryKey key = Registry.LocalMachine;

RegistryKey software = key.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion",true); //该键值须存在

a、设置/创建注册表键值

//使用SetValue()方法设置/创建注册表键值,OpenSubKey()方法中的bool值须为true(可写入)。另外,如果注册表中已存在该键值,执行操作后,会覆盖该键值。

software.SetValue("亦是美网络",www.yishimei.cn);//给CurrentVersion创建一个键名为亦是美网络,值为www.yishimei.cn的键值

tips:SetValue()方法有三个参数,SetValue(键名,键值,键值类型),键值类型有字符串,二进制,Dword等,不设置键值类型时默认为字符串类型。

b、获取注册表键值

//使用GetValue()方法获取注册表键值,当我们只是要获取键值时,OpenSubKey()方法中的bool值可为false,也可去掉bool值。

string GetValue = software.GetValue("SystemRoot").ToString();//获取CurrentVersion项下键名为SystemRoot的键值。

c、删除注册表键值

//使用DeleteValue()方法删除注册表键值,OpenSubKey()方法中的bool值须为true(可写入)。

soft.DeleteValue("SystemRoot");//删除注册表中CurrentVersion项下键名为SystemRoot的键值。

tips:要删除的键值名称须存在,否则抛出异常。

结束语:时间仓促,以上内容如有描述不当者,敬请指出。

捐助支持本站     站长QQ:1580005208     官方QQ群:589766974(点击即可加入)

上一篇:怎样在office2013的word/excel文档中输入化学分子式的下标(右下角的数字)
下一篇:手把手教你C#.NET如何判断注册表项或键、键值是否存在

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

亦是美网络,成立于2012年12月5日,是一个致力于操作系统应用与计算机网络技术的综合IT网站,为大家不断提供和推荐有用的网络教程与技术。

本站文章归 亦是美网络 www.yishimei.cn版权所有 豫ICP备12013471号-4 网站地图