使用C#如何写入/读取注册表信息
本文节选自《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行中将它赋给文本框。

使用C#如何写入/读取注册表信息相关推荐

  1. 使用扩展存储过程xp_regread读取注册表信息

    T-SQL使用扩展存储过程[master].[dbo].[xp_regread]读取注册表信息. 如下注册表: Insus.NET为了做演示,写了一个用户自定义函数[dbo].[GetServerLo ...

  2. c 语言读取注册表信息,C++读取注册表的实现方法

    C++读取注册表 GetRegValue.h: #ifndef __GETREGVALUE_H__ #define __GETREGVALUE_H__ #include //------------- ...

  3. java 读取注册表信息

    准备工作 1.下载registry-3.1.3 2.把ICE_JNIRegistry.dll 放至jdk bin目录下 资源路劲: 度娘资源盘:vi3g 开始 public class Reg64Te ...

  4. 无法写入到注册表项,未将对象引用设置到对象的实例

    System.UnauthorizedAccessException: 无法写入到注册表项 两个解决办法: (1)给OpenSubKey()方法给第2个参数设置为true就可以了,第2个参数为true ...

  5. 关于C# 读取 写入 删除 注册表简单例子

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. php 读取注册表 不用wscript.shell,WebShell的检测技术_91Ri.org

    一.Webshell 的常见植入方法 -启明星辰  Leylo Trent WebShell 攻击是常见的用来控制Web 服务器的攻击方法,WebShell 文件通常是可执行的脚本文件,例如asp, ...

  7. JavaScript读取注册表

    代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...

  8. qsettings删除注册表_Qt QSettings读取注册表和ini | 学步园

    1.读取注册表,以读取已经安装的软件为例. 已经安装的软件信息的注册表位置: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ ...

  9. js读取注册表的键值

    try { var shell = new ActiveXObject("WScript.Shell"); --读取注册表 var  key  = shell.RegRead(&q ...

  10. python测试开发django-35.xadmin注册表信息

    前言 xadmin后台如果要对表的内容增删改查,跟之前的admin.py文件里面写注册表信息一样,需在admin.py同一级目录新建一个adminx.py的文件. 然后在adminx.py文件控制页面 ...

最新文章

  1. 二十八、Java中的Int和Integer的区别
  2. Linux目录、文件的创建与删除
  3. java开发用怎么软件开发_Java 9中的5个功能将改变您开发软件的方式(还有2个不会)...
  4. ASP.NET 页面生存周期概览
  5. 一道C#类型转换的思考题
  6. lingo的初步使用(集)
  7. HTML 5 canvas 基本语法
  8. tlwr886n发挥最大网速_路由器中的2.4G和5G有什么区别?用错了网速变“龟速”
  9. IIS6中应用程序池和Web园,解决Session丢失问题
  10. 测试进阶必备,这5款http接口自动化测试工具不要太香~
  11. 模拟按钮控件BN_CLICKED消息事件
  12. 对齐函数:ALIGN()
  13. Python高级编程——13.垃圾回收机制
  14. 腾讯视频QLV文件格式转换MP4格式
  15. 元素故事系列1:土壤团聚体的氮磷循环
  16. linux ps2键盘驱动,Linux下USB模拟ps2鼠标驱动
  17. React Profiler Chrome Tool
  18. 项目实训——2022
  19. LaTeX编辑中文论文,公式、图表、参考文献添加超链接
  20. 【AJAX】入门AJAX

热门文章

  1. ubuntu14.04 的网络配置
  2. PHP $_SERVER详解
  3. selenium--python如何定位一组元素并返回文本值
  4. (译)Windows Azure:移动后端开发的主要更新
  5. 详细介绍一下 Smoke Testing(冒烟测试)
  6. RTP协议与RTCP协议简介
  7. python函数超时,用装饰器解决 func_timeout
  8. Linux虚拟机下mysql 5.7安装配置方法图文教程
  9. 通过机器学习神经网络自动写前端代码
  10. 数据库--MyBatis的(insert,update,delete)三种批量操作