在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文节选自《21天学通C#》一书 在一些系统软件开发中,常常将一些软件运行环境、系统配置等信息写入到注册表中,除非是所谓的绿色软件。 在Windows平台上的软件,几乎都会和注册表打交道。在本节中,将介绍如何将信息写入到注册表中。 【范例19-5】在本例中演示如何使用RegistryKey类将信息写入到注册表中,如示例代码19-5所示。 示例代码19-5 01 using Microsoft.Win32; //关于注册表的命名空间 02 namespace Ex_19_5 03 { 04 public partial class Form1 : Form 05 { 06 public Form1() //窗口类的构造函数 07 { 08 InitializeComponent(); //完成窗口的初始化工作 09 } 10 private void Form1_Load(object sender, EventArgs e) //窗体加载事件 11 { 12 RegistryKey rsg = null; //声明一个变量 13 if (Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft").SubKeyCount <= 0) 14 { 15 Registry.LocalMachine.DeleteSubKey("SOFTWARE\\Microsoft"); //删除 16 Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft"); //创建 17 } 18 rsg = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft", true); //true表可以修改 19 rsg.SetValue("HoanReg", "写入的值"); //写入 20 rsg.Close(); //关闭 21 } 22 } 23 } 【运行结果】选择“调试”|“启动调试”命令运行程序。 【代码解析】在本例中,写入注册表之前,首先要判断是否存在注册键,第13行代码就是实现这个功能的。 在第16行中,如果不存在注册键就创建它,然后在第19行进行写入,写入之前先要打开, 将OpenSubKey方法的第二个参数设置成true,表示可写。 【读取注册表】 读取注册表在软件开发中,也是一项很常见的任务。因为很多软件的相关环境变量都是存储在注册表中。 例如,在Windows操作系统中,IE的主页地址信息就是存储在注册表中,甚至计算机名称、用户名等信息也是存储在注册表中的。 【范例19-6】在本例中,将读取在范例19-5中写入的注册表信息,如示例代码19-6所示。 示例代码19-6 01 using Microsoft.Win32; //注册表命名空间 02 namespace Ex_19_7 03 { 04 public partial class Form1 : Form 05 { 06 public Form1() //窗口类 07 { 08 InitializeComponent(); //完成初始化 09 } 10 private void button1_Click(object sender, EventArgs e) //铵钮单击事件 11 { 12 try //可能有异常,放在try块中 13 { 14 RegistryKey rsg = null; //声明变量 15 rsg = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft", true); //true表可修改 16 if (rsg.GetValue("HoanReg") != null) //如果值不为空 17 { 18 this.textBox1.Text = rsg.GetValue("HoanReg").ToString(); //读取值 19 } 20 else 21 this.label1.Text = "该键不存在!"; 22 rsg.Close(); //关闭 23 } 24 catch (Exception ex) //捕获异常 25 { 26 this.label1.Text = ex.Message; //显示异常信息 27 } 28 } 29 } 30 } 【运行结果】选择“调试”|“启动调试”命令运行程序。 【代码解析】在本例中,要读取的值是上一个例子中写入的值。在第15行代码处首先打开要读取的注册键, 然后在第16行用if语句和GetValue方法判断是否有数据读出。如果有读出,则在第18行中将它赋给文本框。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论