Vsiaul C#就可以十分方便、简洁的开发出操作注册表的程序。本文就是介绍如何利用VisualC#来读取注册表中的信息。
一.初步认识注册表:
单击"开始/运行",在"打开"的后面填入"regedit"。就可以看到注册表的数据结构了。如下图。注:Regedit文件是微软公司提供给用户编辑注册表的一个工具。
图01:注册表结构图示
如上图左边的部分在注册表中称为"主键",据图可见,"主键"是有层次结构的。主键的下一级主键称为该主键的"子键"。每一个主键可以对拥有多个子键。如图所示,右边的这些值就是所谓的键值了。每一个主键或者子键都可以拥有多个键值。注册表是一个庞大的数据库,在其中每一个主键,每一个键值都赋予了不同的功能。
在.Net FrameWork SDK Beta 2版中,有一个Microsoft.Win32的名称空间,在此名称空间中提供了二个用于注册表操作的类:Registry类、RegistryKey类。这二个类都是封闭类,不可以继承。在这二个类,定义了许多关于注册表的方法和属性,通过调用这二个类,在Visual C#中就可以比较轻松的处理关于注册表的各种操作了。
(1).Registry类:
此类主要封装了七个公有的静态域,而这些静态域分别代表这视窗注册表中的七个基本的主键,具体如下所示:
Registry.ClassesRoot 对应于HKEY_CLASSES_ROOT主键
Registry.CurrentUser 对应于HKEY_CURRENT_USER主键
Registry.LocalMachine 对应于 HKEY_LOCAL_MACHINE主键
Registry.User 对应于 HKEY_USER主键
Registry.CurrentConfig 对应于HEKY_CURRENT_CONFIG主键
Registry.DynDa 对应于HKEY_DYN_DATA主键
Registry.PerformanceData 对应于HKEY_PERFORMANCE_DATA主键
(2).RegistryKey类:
此类中主要封装了对视窗系统注册表的基本操作。在程序设计中,首先通过Registry类找到注册表中的基本主键,然后通过RegistryKey类,来找其下面的子键和处理具体的操作的。
三.通过一个读取注册表信息例子来具体说明这二个来的用法:
(1).程序设计和运行的环境:
I视窗系统2000服务器版
II Net FrameWork SDK Beta 2版
(2)在运行程序前的一些必要的处理工作:
在程序设计时,主要功能是读取已经存在的主键键值,用户可以按照下图所示的结构新建若干个主键和对应的键值:
图02:程序设计中要读取的注册表的信息
这里有必要说明的是上图只显示了"新项 #3"子键对应的键值。在"新项 #2"子键也有键值,对应的键值是:"新值#1"为"001","新值 #2"为"002"。在"新项 #1"子键中对应的键值是:"新值 #1"为"aaa","新值 #2"为"bbb"。
(3).程序的主要功能:
程序的主要功能是读取指定主键下面的所有子键和子键拥有的键值,并以列表的形式按层次显示出来,下图是本程序运行后界面:
图03:读取注册表信息并以列表形式显示出来
(4).程序设计过程中的重要步骤以及应该注意的一些问题:
I 程序中读取主键、子键和键值所使用到的方法:
程序中为了读取指定主键下面的子键和子键中拥有的键值,主要使用了RegistryKey类中的四个方法:OpenSubKey,GetSubKeyNames,GetValueNames,GetValue。具体的用法和意思如下:
OpenSubKey ( string name )方法主要是打开指定的子键。
GetSubKeyNames ( )方法是获得主键下面的所有子键的名称,它的返回值是一个字符串数组。
GetValueNames ( )方法是获得当前子键中的所有的键名称,它的返回值也是一个字符串数组。
GetValue ( string name )方法是指定键的键值。
程序中具体的使用语句如下:
2 // 打开"SYSTEM"子键
3 RegistryKey software = hklm.OpenSubKey ( " SYSTEM " ) ;
4 // 打开"001"子键
5 RegistryKey no1 = software.OpenSubKey ( " 001 " ) ;
6 // 打开"002"子键
7 RegistryKey no2 = no1.OpenSubKey ( " 002 " ) ;
其中listBox1是程序中定义了的列表名称。
II 如何用列表形式显示注册信息:
由于GetSubKeyNames ( )方法和GetValueNames ( )方法的返回值是字符串数组,所以在程序中是通过foreach语句实现遍历这些字符串数组的。并且在遍历的时候,就通过列表形式显示出来,程序中具体实现语句如下:
![](https://i-blog.csdnimg.cn/blog_migrate/755e10718fc98b9fda4ecb7319a8925f.png)
2
![](https://i-blog.csdnimg.cn/blog_migrate/755e10718fc98b9fda4ecb7319a8925f.png)
3
![](https://i-blog.csdnimg.cn/blog_migrate/6c19eed907fa3975a50d756ba6721e21.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6af27ecd107be99c65dc9b76d15cc129.png)
![](https://i-blog.csdnimg.cn/blog_migrate/25b9ba110d48991afa260c8953a12c67.png)
4
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
5
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
6
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
7
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
8
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
9
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
10
![](https://i-blog.csdnimg.cn/blog_migrate/5e5d4bfadfdacb2f3d631c8c1638617c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/283eb36683791455138dde6128176eea.png)
![](https://i-blog.csdnimg.cn/blog_migrate/25b9ba110d48991afa260c8953a12c67.png)
11
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
12
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
13
![](https://i-blog.csdnimg.cn/blog_migrate/ba4c970bbec3e8795206d8a609d20921.png)
14
![](https://i-blog.csdnimg.cn/blog_migrate/cc27d5af14287d1aad3c1fefe4c5dbf4.png)
(5).源程序代码:
通过以上的论述,我们可以得到程序的源程序代码,具体如下:
![](https://i-blog.csdnimg.cn/blog_migrate/755e10718fc98b9fda4ecb7319a8925f.png)
2
![](https://i-blog.csdnimg.cn/blog_migrate/755e10718fc98b9fda4ecb7319a8925f.png)
3
![](https://i-blog.csdnimg.cn/blog_migrate/755e10718fc98b9fda4ecb7319a8925f.png)
4
![](https://i-blog.csdnimg.cn/blog_migrate/755e10718fc98b9fda4ecb7319a8925f.png)
5
![](https://i-blog.csdnimg.cn/blog_migrate/755e10718fc98b9fda4ecb7319a8925f.png)
6
![](https://i-blog.csdnimg.cn/blog_migrate/755e10718fc98b9fda4ecb7319a8925f.png)
7
![](https://i-blog.csdnimg.cn/blog_migrate/755e10718fc98b9fda4ecb7319a8925f.png)
8
![](https://i-blog.csdnimg.cn/blog_migrate/755e10718fc98b9fda4ecb7319a8925f.png)
9
![](https://i-blog.csdnimg.cn/blog_migrate/6c19eed907fa3975a50d756ba6721e21.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6af27ecd107be99c65dc9b76d15cc129.png)
![](https://i-blog.csdnimg.cn/blog_migrate/25b9ba110d48991afa260c8953a12c67.png)
10
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
11
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
12
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
13
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
14
![](https://i-blog.csdnimg.cn/blog_migrate/5e5d4bfadfdacb2f3d631c8c1638617c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/283eb36683791455138dde6128176eea.png)
![](https://i-blog.csdnimg.cn/blog_migrate/25b9ba110d48991afa260c8953a12c67.png)
15
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
16
![](https://i-blog.csdnimg.cn/blog_migrate/ba4c970bbec3e8795206d8a609d20921.png)
17
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
18
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
19
![](https://i-blog.csdnimg.cn/blog_migrate/5e5d4bfadfdacb2f3d631c8c1638617c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/283eb36683791455138dde6128176eea.png)
![](https://i-blog.csdnimg.cn/blog_migrate/25b9ba110d48991afa260c8953a12c67.png)
20
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
21
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
22
![](https://i-blog.csdnimg.cn/blog_migrate/ba4c970bbec3e8795206d8a609d20921.png)
23
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
24
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
25
![](https://i-blog.csdnimg.cn/blog_migrate/5e5d4bfadfdacb2f3d631c8c1638617c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/283eb36683791455138dde6128176eea.png)
![](https://i-blog.csdnimg.cn/blog_migrate/25b9ba110d48991afa260c8953a12c67.png)
26
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
27
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
28
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
29
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
30
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
31
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
32
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
33
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
34
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
35
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
36
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
37
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
38
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
39
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
40
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
41
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
42
![](https://i-blog.csdnimg.cn/blog_migrate/ba4c970bbec3e8795206d8a609d20921.png)
43
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
44
![](https://i-blog.csdnimg.cn/blog_migrate/5e5d4bfadfdacb2f3d631c8c1638617c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/283eb36683791455138dde6128176eea.png)
![](https://i-blog.csdnimg.cn/blog_migrate/25b9ba110d48991afa260c8953a12c67.png)
45
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
46
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
47
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
48
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
49
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
50
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
51
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
52
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
53
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
54
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
55
![](https://i-blog.csdnimg.cn/blog_migrate/5e5d4bfadfdacb2f3d631c8c1638617c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/283eb36683791455138dde6128176eea.png)
![](https://i-blog.csdnimg.cn/blog_migrate/25b9ba110d48991afa260c8953a12c67.png)
56
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
57
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
58
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
59
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
60
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
61
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
62
![](https://i-blog.csdnimg.cn/blog_migrate/5e5d4bfadfdacb2f3d631c8c1638617c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/283eb36683791455138dde6128176eea.png)
![](https://i-blog.csdnimg.cn/blog_migrate/25b9ba110d48991afa260c8953a12c67.png)
63
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
64
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
65
![](https://i-blog.csdnimg.cn/blog_migrate/ba4c970bbec3e8795206d8a609d20921.png)
66
![](https://i-blog.csdnimg.cn/blog_migrate/ba4c970bbec3e8795206d8a609d20921.png)
67
![](https://i-blog.csdnimg.cn/blog_migrate/ba4c970bbec3e8795206d8a609d20921.png)
68
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
69
![](https://i-blog.csdnimg.cn/blog_migrate/5e5d4bfadfdacb2f3d631c8c1638617c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/283eb36683791455138dde6128176eea.png)
![](https://i-blog.csdnimg.cn/blog_migrate/25b9ba110d48991afa260c8953a12c67.png)
70
![](https://i-blog.csdnimg.cn/blog_migrate/2cc9face5c8a311e59dd7aa1cbd813d6.png)
71
![](https://i-blog.csdnimg.cn/blog_migrate/ba4c970bbec3e8795206d8a609d20921.png)
72
![](https://i-blog.csdnimg.cn/blog_migrate/cc27d5af14287d1aad3c1fefe4c5dbf4.png)
四.总结:
用Visual C#来读取注册表中的注册信息是通过名称空间Micorsoft.Win32中的二个类来实现的。在这二个类中还定义了对注册表信息的删除、修改和重命名的一些方法。这些方法比起本文介绍的读取方法、打开方法来说,更具有破坏性,但也更实用。对应这些方法的介绍将在以后的文章中进行。
通过以上的介绍,我们发现用Visual C#来处理注册表,其实是一件比较轻松而简单的事情。事情虽然是轻松的,但我也要提醒各位,由于注册表在视窗系统中的重要作用,所以在每一次对注册表进行操作之前,一定要备份,在操作的时候也要非常小心,因为你的每一次的误操作都可能导致你的系统崩溃。