C#注册表操作学习

来源:互联网 发布:知美术馆(图 编辑:程序博客网 时间:2024/06/07 01:54

1.   准备工作

1.      引入命名空间:

using Microsoft.Win32;

2.      命名空间里面提供了一个类: RegistryKey。利用它我们可以定位到注册表最开头的分支。

RegistryKey key =Registry.LocalMachine;

2.具体实现

(1)注册表项的创建、打开与删除

1.       新建项:

RegistryKey rk = Registry.CurrentUser;RegistryKey software = rk.OpenSubKey("software", true);//打开software注册表项,注意该方法后面还可以有一个布尔型的参数,true表示可以写入。RegistryKey gissoft = software.CreateSubKey("gisSoft");//在HKEY_CURRENT_USER\SOFTWARE下新建名为test的注册表项。如果已经存在则不影响。

2.       删除项:

software.DeleteSubKey("gisSoft");//删除注册表项

(2)键值的创建、读取、修改和删除

1.创建(设置值、修改)

RegistryKey rk = Registry.CurrentUser;RegistryKey software = rk.OpenSubKey("software", true);RegistryKey gissoft = software.CreateSubKey("gisSoft");gissoft.SetValue("test", "注册表测试");//在HKEY_CURRENT_USER\SOFTWARE\gisSoft下创建一个名为“test”,值为“注册表测试”的键值。如果该键值原本已经存在,则会修改替换原来的键值,如果不存在则是创建该键值。// 注意:SetValue()还有第三个参数,主要是用于设置键值的类型,如:字符串,二进制,Dword等等~~默认是字符串。如://software.SetValue("test", "0", RegistryValueKind.DWord); //二进制信息

2.读取键值

string s=gissoft.GetValue("test").ToString();//读取键值

3.      删除键值

gissoft.DeleteValue("test");//删除键值

3.应用举例

以在HKEY_CURRENT_USER\SOFTWARE下新建、删除gisoift子项,并新建、读取、修改、删除键值为例,代码如下:

using Microsoft.Win32; namespace 注册表学习{    class Program    {        static voidMain(string[] args)         {            RegistryKey rk =Registry.CurrentUser;            RegistryKeysoftware = rk.OpenSubKey("software", true);//打开software注册表项,注意该方法后面还可以有一个布尔型的参数,true表示可以写入。            RegistryKeygissoft = software.CreateSubKey("gisSoft");//在HKEY_CURRENT_USER\SOFTWARE下新建名为test的注册表项。如果已经存在则不影响。           gissoft.SetValue("test", "注册表测试");            //在HKEY_CURRENT_USER\SOFTWARE\gisSoft下创建一个名为“test”,值为“注册表测试”的键值。如果该键值原本已经存在,则会修改替换原来的键值,如果不存在则是创建该键值。            // 注意:SetValue()还有第三个参数,主要是用于设置键值的类型,如:字符串,二进制,Dword等等~~默认是字符串。如:            //software.SetValue("test", "0", RegistryValueKind.DWord); //二进制信息            string s;            s = gissoft.GetValue("test").ToString();//读取键值           gissoft.DeleteValue("test");//删除键值           software.DeleteSubKey("gisSoft");//删除注册表项        }    }}

1 0