您的位置:首页 > 编程语言 > C#

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

2017-01-10 11:08 846 查看
最近在写软件的时候,又使用到了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.aiweibk.com);//给CurrentVersion创建一个键名为艾薇百科,值为www.aiweibk.com的键值

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:要删除的键值名称须存在,否则抛出异常。

结束语:时间仓促,以上内容如有描述不当者,敬请指出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  注册表 ie
相关文章推荐