暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

C# 创建和修改注册表信息

DotNet工控上位机编程 2021-10-23
467


01


创建注册表信息


      通过 RegistryKey 类的 CreateSubKey 方法和 SetValue 方法可以创建注册表信息,下面介绍这两种方法。

(1)CreateSubKey 方法主要用于创建一个新子项或打开一个现有子项以进行写访问。

语法如下:

public RegistryKey CreateSubkey(string subkey) 

  subkey:要创建或打开的子项的名称或路径。

  返回值:RegistryKey 对象,表示新建的子项或空引用。如果为 subkey 指定了零长度字符串,则返回当前的 RegistryKey 对象。

(2)SetValue 方法主要用于设置注册表项中的名称/值对的值。

语法如下:

public void SetValue(string name,Object value) 

  name::要存储的值的名称。

  value:要存储的数据。


说明

         SetValue 方法用于从非托管代码中访问托管类,不应从托管代码调用。


     下面通过实例演示如何通过 RegistryKey 类的 CreateSubKey 方法和 SetValue 方法创建一个子键。

【例 1】创建一个 Windows 应用程序,在主键 HKEY_LOCAL_MACHINE 的 HARDWARE键下创建一个名为 LS 的子键,然后在这个子键下再创建一个名为 SHJ的子键,接着在 SHJ 子键下创建一个名为 value、数据值是1234的键值。

代码如下:


//添加 using Microsoft.Win32;命名空间
private void button1_Click(object sender,EventArgs e)
{
try
{
//创建 RegistryKey 实例
RegistryKey hkIm = Registry.LocalMachine;
//使用 OpenSubKey 方法打开 HKEY_LOCAL_MACHINE\HARDWARE 键 
RegistryKey software =hkIm.OpenSubKey("HARDWARE",true);
//使用 CreateSubKey 方法创建名为 LS 的子键
RegistryKey main1 = software.CreateSubKey("LS");
//使用 CreateSubkey 方法在LS 键下创建一个名为 SHJ 的子键
RegistryKey ddd = main1.CreateSubKey("SHJ");
//在子键 SHJ 下建立一个名为 value 的键值,数据值为 1234 
ddd.SetValue("value","1234");
MessageBox.Show("创建成功");
}
catch(Exceptlon ex)
{
MessageBox.Show(ex.Message);
}
}

运行程序,单击“创建子键”按钮,结果如图 1所示。



图1 创建子键




02

 修改注册表信息


       由于注册表中的信息十分重要,所以一般不要对其进行写操作。也可能是这个原因,在.Net Framework 中并没有提供修改注册表键的方法;而只是提供了一个危害性相对较小的 SetValue 方法,通过这个方法,可以修改键值。在使用 SetValue 方法时,如果它检测到指定的键值不存在,就会创建一个新的键值。下面通过一个实例演示如何通过 SetValue 方法修改注册表信息。
【例2】创建一个 Windows 应用程序,将主键 HKEY_LOCAL MACHINE\HARDWARE\LS\SHJ下名为 value 的键值的数据值修改为 abcd。
代码如下:



//添加 using Microsof.Win32;命名空间
private void button1_Click(object sender,EventArgs e)
{
try
{
//创建 RegistryKey 实例
RegistryKey hkIm = Registry.LocalMachine;
//使用 OpenSubKey 方法打开 HKEY_LOCAL_MACHINE\HARDWARE 键 
RegistryKey software = hkIm.OpenSubKey("HARDWARE",true);
//使用 OpenSubKey 方法打开 LS 键
RegistryKey dddw = software.OpenSubKey("LS",true);
//使用 OpenSubKey 方法打开 LS 键下的 SHJ 子键
RegistryKey regkey = dddw.OpenSubKey("SHJ",true);
//使用 SetValue 方法修改指定的键值 
regkey.SetValue("value","abcd"); 
MessageBox.Show("修改成功:);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}


程序运行前后对比如图 2 和图 3 所示。



           


             图2 修改注册表信息之前                       图3 修改注册表信息之后






- END -








关注小编不迷路呦~




文章转载自DotNet工控上位机编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论