C#中对注册表的操作

2016-01-29 13:38 6 1 收藏

C#中对注册表的操作,C#中对注册表的操作

【 tulaoshi.com - ASP.NET 】

Windows 操作系统的注册表包含了很多有关计算机运行的配置方式,打开注册表我们可以看到注册表是按类似于目录的树结构组织的,其中第二级目录包含了五个预定义主键分别是:HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_CONFIG。

  下面我们来分别解释这5个类的作用

  HKEY_CLASSES_ROOT该主键包含了文件的扩展名和应用程序的关联信息以及Window Shell和OLE用于储存注册表的信息。该主键下的子键决定了在WINDOWS中如何显示该类文件以及他们的图标,该主键是从HKEY_LCCAL_MACHINESOFTWAREClasses映射过来的。

  HKEY_CURRENT_USER该主键包含了如用户窗口信息,桌面设置等当前用户的信息。

  HKEY_LOCAL_MACHINE主键包含了计算机软件和硬件的安装和配置信息,该信息可供所有用户使用
  HKEY_USERS该主键记录了当前用户的设置信息,每次用户登入系统时,就会在该主键下生成一个与用户登入名一样的子键,该子键保存了当前用户的桌面设置、背景位图、快捷键,字体等信息。一般应用程序不直接访问改主键,而是通过主键HKEY_CURRENT_USER进行访问。

  HKEY_CURRENT_CONFIG该主键保存了计算机当前硬件的配置信息,这些配置可以根据当前所连接的网络类型或硬件驱动软件安装的改变而改变。

  C#也支持对注册表的编辑,.NET框架在Microsoft.Win32名字空间中提供了两个类来操作注册表:Registry和RegistryKey。这两个类都是密封类不允许被继承。下面我们分别来介绍这两个类。

  Registry类提供了7个公共的静态域,分别代表7个基本主键(其中两个在XP系统中没有,在这就不介绍了)分别是:Registry.ClassesRoot,Registry.CurrentUser,Registry.LocalMachine,Registry.Users,Registry.CurrentConfig。它们分别对应哪几个键我想各位一看就会知道吧。

  RegistryKey类中提供了对注册表操作的方法。要注意的是操作注册表必须符合系统权限,否则将会抛出错误。

  下面我们就来几个操作注册表常用的几个方法

  创建子键的方法原型为:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)public RegistryKey CreateSubKey(string sunbkey);



  参数sunbkey表示要创建的子键的名称或路径名。创建成功返回被创建的子键,否则返回null。

  打开子键的方法原型为:

public RegistryKey OpenSubKey(string name);
  public RegistryKey OpenSubKey(string name,bool writable);

  参数name表示要打开的子键名或其路径名,参数writable表示被打开的子键是否允许被修改,第一个方法打开的子键是只读的。Microsoft.Win32类还为我们提供了另一个方法,用于打开远程计算机上的注册表,方法原型为:

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


  删除子键的方法原型为:

 public void DeleteKey(string subkey);


  该方法用于删除指定的主键。如果要删除的子键还包含主键则删除失败,并返回一个异常,如果要彻底删除该子键极其目录下的子键可以用方法DeleteSubKeyTree,该方法原型如下:

public void DeleteKeyTree(string subkey);
  读取键值的方法原型如下:

public object GetValue(string name);
  public object GetValue(string name,object defaultValue);
  参数name表示键的名称,返回类型是一个object类型,如果指定的键不存在则返回null。如果失败又不希望返回的值是null则可以指定参数defaultValue,指定了参数则在读取失败的情况下返回该参数指定的值。

  设置键值的方法原型如下:

 public object SetValue(string name,object value);

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

来源:http://www.tulaoshi.com/n/20160129/1490946.html

延伸阅读
标签: 电脑入门
注册表虽然是通过各个根键和子键来分类管理各种信息,但具体数据信息还是依靠键值项和键值来实现。在注册表中绝大多数分支或子项中还包含了一个或若干个值项,每个值项又对应于一定数据类型的一组数据,这就是键值项和键值,打开注册表编辑器后,选择一个分支或子项,在注册表编辑器的右侧窗口中显示的就是键值项和键值(如图1)。 图1 细心...
本加密方法分三部分: 1. 根据对注册表的搜索结果判定设置对话框的内容。 2. 若初次使用,则设新密码;若是已经设置密码,则进行验证。 3. 一个密码变换小程序(比原来的复杂得多)。当然,如果需要修改密码的功能,只要将设置密码部分改动一下即可。 一、程序启动时,通过搜索注册表,判断是否已有密码...
----毫不夸张的说,注册表相当于WIN95的“心”,几乎所有的Windows应用程序都毫不例外的要在这里边“安家筑巢”,如果你也用VB编写了一个程序,是不是也想在注册表里占有一席之地呢(即使刚才没有,现在大概也有了吧)?嗯,听我慢慢道来。 ----“API”中专门提供了处理注册表的函数,不用说也知道,它们肯定功能强大(因为它们是API)...
标签: windows 操作系统
别以为Windows XP用了这么多年,你就对它的系统注册表了如指掌,看看本文,也许有些地方连老鸟也没接触过呢,而新手则可以趁此机会,在微软Longhorn正式出来之前,对XP有个更加清楚的认识,从而进阶成为高手。对于这些知识,我们还是从基础开始吧。 注册表基础: 系统文件夹: 名称 路径 含义 AppData C:\Windows...
标签: Delphi
  0. DISCLAIMER: 1. What is the registry? 2. What does the registry look like? 3. How to read and write data to the registry     3.1 RegCreateKey()     3.2 RegOpenKey()     3.3 RegSetValue()     3.4 RegQueryValue()  &nbs...

经验教程

21

收藏

26
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部