c# 注册表编辑

来源:互联网 发布:矩阵的秩与线性相关 编辑:程序博客网 时间:2024/06/05 00:19

registry hive

在注册表中,最上面的节点是注册表配置单元(registry hive),有7个注册表配置单元,但用regedit只能看到5个

  • HKEY_CLASSES_ROOT(HKCR)包含系统上文件类型的细节,以及使用哪些应用程序可以打开每种文件。它还包含所有COM组件的注册信息,目前的Windows带有非常多的COM组件。
  • HKEY_CURRENTS_USERS(HKCU)包含用户目前登录的计算机的用户配置。这些配置包括桌面设置、环境变量、网格和打印机连接,以及其他定义用户的操作环境的设置。
  • HKEY_LOCAL_MACHINE(HKLM)包含所有安装到计算机上的软件和硬件信息,其中HKCR只是一个对注册表键HKLM/SOFTWARE/Classes的方便映射。
  • HKEY_USERS(HKUSR)包含所有用户的用户首选项。其中HKCU是其中的一个键的映射。
  • HKEY_CURRENT_CONFIG(HKCF)包含计算机上硬件的详细信息

其余的两个键包含临时信息,这些信息常常会更改:

  • HKEY_DYN_DATA包含需要存储在注册表中的任何易失性数据
  • HKEY_PERFORMANCE_DATA 包含与运行应用程序的性能相关的信息

RegisterKey类

属性

Name 键的名称(只读)

SubKeyCount 键的子键个数

ValueCount 键包含的值的个数

方法

Close()关闭键

CreateSubKey()创建给定名称的子键(如果该子键已经存在,就打开它)

DeleteSubKey()删除指定的子键

DeleteSubKeyTree()递归删除子键及及所有子键

DeleteValue()从键中删除一个指定的值

GetAccessControl()返回指定注册表键的ACL

GetSubKeyNames()返回包含子键名称的字符串数组

GetValue() 返回指定的值

GetValueKind()返回指定 的值,要检索其注册表数据类型

GetValueName()返回一个包含所有键值名称的字符数组

OpenSubKey()返回表示给定子键的RegistryKey实例的引用

SetAccessControl()把ACL应用于指定的注册键

SetValue()设置指定的值

应用示例

1.读取本机软件安装信息

using(RegistryKey key =Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall",false))//false表示以只读打开{if(key!=null){foreach(string keyName in key.GetSubKeyNames()){using(RegistryKey key2 = key.OpenSubKey(keyName,false)){if(key2!=null){string softwareName = key2.GetValue("DisplayName","").toString();string installLocation j= key2.GetValue("InstallLocation","").toString();}}}}}

2.隐藏桌面图标

  using (RegistryKey key=Registry.CurrentUser.CreateeSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"))  {  key.SetValue("NoDeskTop",1,RegistryValueKind.DWord);  }

禁用活动桌面:在注册表中HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer项下的值NoDeskTop,当其值为“1”时,表示隐藏桌面,其值为0表示显示桌面。该设置只有重启计算机后才能生效。

启用活动桌面:在注册表中HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer项下的值ForceActiveDesktoopOn,设置为1


0 0
原创粉丝点击