创建注册表读写程序(一)

      在介绍如何使用visual studio编写程序访问注册表之前,先简单地介绍一下什么是注册表。注册表是一个存在于Windows操作系统中的数据库,用于存储计算机软件和硬件的配置数据。目前大部分应用程序都通过注册表保存配置数据,包括Windows操作系统自身。

      注册表中记录了用户安装在计算机上的软件和程序的相关信息,用户可以通过注册表调整软件的运行性能等。目前存在大量的注册表修改教程用于指导用户调整软件性能,还有一些简便的调整工具。用户要修改配置,只需要通过注册表编辑器即可轻松完成。

      注册表的组织方式主要是由键构成,键与系统资源管理器中的文件夹相似,它可以包含附加的子键和一个或多个值。每一个键可包含任意数量的值项。在注册表编辑器的左边窗格中用户可以看到以"HKEY_Name*" 方式命名的串,这些串被称为根键(Root Key)。根键是注册表中键的一种,由于其处在其树状结构的最顶层,因而称其为根键。

      注册表的主键是键的一种,它包含一个或多个子键或值项,其命名是相对于子键而言的。在一个主键下面出现的键称为子键。分支是指某个特定的子键及其所包含的所有内容。分支可以从注册表的顶端开始。

      值项是一对包括名称和值的有序值。值项与Windows资源管理器中的文件相似。每一个值项由名称、数据类型和数据三部分组成。名称除了不能包含反斜杠外,可以由任意字符、数字、代表符和空格组成。名称特指在一个键中的值项。注册表中不同键的值项可以使用相同的名称,而同一键中的值项不能使用相同的名称。如"HKEY_LOCAL_MACHINE"

即是一个根键,"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Help"中"Software"是一个主键。而"Windows"即是"Microsoft"的子键,又是"Help"的主键。

     注册表中的值项可以保存各种不同的数据类型,如字符串、二进制等。值的数据可以占用64KB的存储空间。如果系统或应用程序给某个值项分配了空值,该值项的值为一个空值,长度为0。值项所定义的内容是该值项的值。每一个值的数据都有其数据类型,用于指示该值是字符串、二进制或双字值。

     每一个键都有一个包含或不包含数据的默认值。在注册表编辑器中,每一个键中的默认值被称为Default。每一个键至少包括一个值项,称为该键的默认值。如果某个程序只需在注册表中保存一个值,那么默认值项是唯一保存在该键中的数据。

    注册表编辑器是一个面向系统管理员和使用者的可视化管理注册表数据的工具,它具有很强的功能,操作简单,使用方便。该编辑器没有工具条,菜单也很直观易懂。进入编辑器后,即可看到两个窗格,左边窗格显示注册表的结构列表,右边是实际配置数据。用户可以通过其提供的功能轻而易举地对计算机配置数据进行调整。


    实例介绍如何使用C#读取注册表及写入注册表

1、从注册表中读取值

添加如下引用:

using Microsoft.Win32;

class Program

{

   static void Main(string[ ] args)

   {

     Console.WriteLine("读取注册表成功!");

     Console.WriteLine("读取到的值为:“);

     Console.WriteLine(GetRegistData());

   }

   static string GetRegistData()

   {

      string registData;//用于保存读取值的变量

      //用hkml表示注册表的根键"HKEY_LOCAL_MACHINE"

      RegistryKey  hkml=Registry.LocalMachine;

      //获得根键"HKEY_LOCAL_MACHINE"下的"Software"子键

      RegistryKey  software=hkml.OpenSubKey("SOFTWARE",true);

      //获得子键”HKEY_LOCAL_MACHINE\Software"下的“Microsoft"子键

      RegistryKey   microsoft =software.OpenSubKey("Microsoft",true);

      //获得子键”HKEY_LOCAL_MACHINE\Software\Microsoft"下的”Windows"子键

      RegistryKey   windows= microsoft.OpenSubKey("Windows",true);

     //获得子键”HKEY_LOCAL_MACHINE\Software\Microsoft\windows"下的“Help"子键

      RegistryKey    help =windows.OpenSubKey("Help",true);

     //获得子键”HKEY_LOCAL_MACHINE\Software\Microsoft\windows\Help"下的"PINTLPAE.HLP"值

      registData=help.GetValue(@ "PINTLPAE>HLP").ToString();

      return registData;

   }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值