快捷导航

网游分类软件分类

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

2015年9月11日 来源:网络

最近在写软件的时候,又使用到了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:要删除的键值名称须存在,否则抛出异常。


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


 

相关游戏

相关文章

热门手游推荐