欢迎光临
我们一直在努力

详解如何使用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.adaigou.net);//给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:要删除的键值名称须存在,否则抛出异常。

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

 

赞(0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《详解如何使用C#.NET进行注册表项和键值的创建、删除、修改、获取等操作》
文章链接:https://www.adaigou.net/shiyong/2883.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

'); })();