前往顾页
以后地位: 主页 > 收集编程 > .Net实例教程 >

C#中对注册表的操纵实现教程

时候:2018-11-08 20:38来源:知行网www.zhixing123.cn 编辑:麦田守望者

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_MACHINE\SOFTWARE\Classes映照过去的。
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类中供应了对注册表操纵的体例。要重视的是操纵注册表必须适合体系权限,不然将会抛出错误。

  下面我们就来几个操纵注册表常常利用的几个别例

  建立子键的体例原型为:


  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);

------分开线----------------------------
标签(Tag):C# 对注册表的操纵
------分开线----------------------------
保举内容
猜你感兴趣