C#对注册表编程的支持

 

Windows操作系统的注册表中包含了有关计算机运行方式的配置信息,其中包括Windows操作系统配置信息、应用程序配置信息、专用用户设置配置信息、环境配置信息等。另外,在WindowsNT和Windows2000操作系统中,注册表中还包含了安全性、网络管理等配置信息。

在应用程序安装时,常常需要利用注册表来登记应用程序的名字、运行路径、用户对应用程序的配置信息等。许多应用程序在运行时也常常需要访问注册表。

.Net框架结构在Microsoft.Win32名字空间内提供了两个类用于注册表操作:

Registry和RegistryKey。这两个类都是密封类,不允许被其它类继承。

Registry类中提供了7个公有的静态域,分别代表Windows注册表中的7个基本主键,它们是:

●Registry.ClassRoot,对应于HKEY_CLASSES_ROOT主键。

●Registry.CurrentUser,对应于HKEY_CURRENT_USER主键。

●Registry.LocalMachine,对应于HKEY_LOCAL_MACHINE主键。

●Registry.Users,对应于HKEY_USERS主键。

●Registry.CurrentConfig,对应于HKEY_CURRENT_CONFIG主键。

●Registry.DynDta,对应于HKEY_DYN_DATA主键。

●Registry.PerformanceData,对应于HKEY_PERFORMANCE_DATA主键。

RegistryKey类中封装了对Windows注册表的基本操作。对注册表的操作必须符合系统提供的权限,否则不能完成指定的操作,程序将抛出一个异常。

创建子键

创建子键的成员方法的原型为:

public RegistryKey CreateSubKey(string subkey);

其中,参数subkey表示要创建的子键的名字或子键的全路径名。如果创建成功,返回值就是被创建的子键,否则为null。

打开子键

打开子键的成员方法原型为:

public RegistryKey OpenSubKey(string name);

public RegistryKey OpenSubKey(string name,bool writable);

name参数表示要打开的子键名称或全路径名,Writable参数表示被打开的主键是否可以被修改。

第一个方法对打开的子键默认是只读的,如果希望对打开的主键进行写操作,使用第二个方法,并把writalbe参数值设为true.

名字空间Microsoft.Win32中还为我们提供了另一个方法,用于打开远程机器上的注册表进行操作。方法原型为:

public static RegistryKey OpenRemoteBaseKey(RegistryHive hKey,string machineName);

删除子键

DeleteSubKey方法用于删除指定的子键,方法原型为:

public void DeleteSubKey(string subkey);

使用DeleteSubKey方法时,如果子键之中还包含子键,则删除失败,并返回一个异常。如果要彻底删除子键目录,即删除子键以及子键以下的全部子键,可以使用DeleteSubKeyTree方法。该方法的原型为:

public void DeleteSubKeyTree(string subkey);

读取键值

读键的方法原型为:

public object GetValue(string name);

public object GetValue(string name,object defaultValue);

name参数表示键的名称,返回类型是一个object类型。如果方法中指定的键不存在,则方法返回一个null。我们在使用GetValue方法时,可以不必关心该键的值类型究竟是字符串、二进制还是DWORD类型,只要使用正确的返回类型就可以了。比如,我们希望读取一个字符串类型的键值,代码就可以这样写:

string s_value=key.GetValue("Type");

其中key表示一个主键。

如果不确定键值是否存在,而又不希望得到一个null返回值,那就使用第二个方法GetValue(string name,object defaultValue),其中的参数defaultValue表示默认的返回值。如果读取失败,返回值就是传递给参数defaultValue的值。

设置键值

设置键值的方法原型为:

public void SetValue(string name,object value);

同样,我们在使用该方法修改键值时,不用费心去分辨究竟该传递哪种值类型,方法将会识别是哪种类型,并把相应类型的值赋予指定的键

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值