VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Objective-C编程 >
  • c#读取注册表信息

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  当计算机在安装一个程序时,有很多信息已写入到注册表中。每当用户开启这个程序时,程序便会读取注册表中的信息来完成程序的初始化。例如,在使用一个测试版应用程序时,每次启动都会提示用户还有多少次或还有多长时间到期。这些信息通常从注册表中读取,注册表的读取主要是通过RegistryKey类实现的。下面将主要介绍这个类及其应用。

  RegistryKey类中主要封装了对视窗系统注册表的基本操作。在程序设计中,首先通过Registry类找到注册表中的主键,然后通过RegistryKey类]找其下面的子键和处理具体的操作。通过Registry类中的OpenSubKey方法、GetSubKeyNames方法和GetValueNames方法可以读取注册表中的信息。

  (1)OpenSubKey方法

  用于检索指定的子项。语法:PublicRegistryKeyOpenSubKey 
(
 stringname
)

  参数:

  name:要以只读方式打开的子项的名称或路径。

  返回值:

  请求的子项;如果操作失败,则为空引用。

  例如,通过OpenSubKey方法打开“HKEY_CURRENT_USERAppEventsEventLabels”子键;

RegistryKeyrk=Registry.CurrentUser;
RegistryKeysys=rk.OpenSubKey(@"AppEventsEventLabels");

  (2)GetSubKeyNames方法

  检索包含所有子项名称的字符串数组。

  语法:publicstring[]GetSubKeyNames()

  返回值:

  包含当前项的子项名称的字符串数组。

  例如,通过GetSubKeyNames方法检索“HKEY_CURRENT_USERAppEventsEventLabels”子键下包含的所有子项名称的字符串数组;

      RegistryKeyrk=Registry.CurrentUser;
      RegistryKeysys=rk.OpenSubKey(@"AppEventsEventLabels");
      foreach(stringstrinsys.GetSubKeyNames())
      {
         this.listBox1.Items.Add("子键名:"+str);
      }

  (3)GetValueNames方法

  检索包含与此项关联的所有值名称的字符串数组。

  语法:

publicstring[]GetValueNames()

  返回值:

  包含当前项的值名称的字符串数组。

  例如,通过GetValueNames方法检索“HKEY_CURRENT_USERAppEventsEventLabels”子键下包含的所有子项,然后检索包含与此子项关联的所有值名称的字符串数组;

RegistryKeyrk=Registry.CurrentUser;
      RegistryKeysys=rk.OpenSubKey(@"AppEventsEventLabels");
      foreach(stringstrinsys.GetSubKeyNames())
      {
        RegistryKeysikey=sys.OpenSubKey(str);//打开子键
        foreach(stringsVNameinsikey.GetValueNames())
        {
          this.listBox1.Items.Add(sVName);
        }
      }

  示例  读注册表

  读取“HKEY_CURRENT_USERAppEventsEventLabels”子键信息,将其添加到listBox控件中。

  首先通过Registry类实例化一个RegistryKey类对象,然后利用对象的OpenSubKey方法打开指定的键。最后通过循环将所有键值全部提取出来并显示在listBox控件中,程序代码如下。privatevoidButRead_Click(objectsender,EventArgse)
    {
      this.listBox1.Items.Clear();
      RegistryKeyrk=Registry.CurrentUser;
      RegistryKeysys=rk.OpenSubKey(@"AppEventsEventLabels");
      foreach(stringstrinsys.GetSubKeyNames())
      {
        this.listBox1.Items.Add("子键名:"+str);
        RegistryKeysikey=sys.OpenSubKey(str);//打开子键
        foreach(stringsVNameinsikey.GetValueNames())
        {
          this.listBox1.Items.Add(sVName+sikey.GetValue(sVName));
        }
      }
    }



相关教程