c# 注册表编辑

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

 

最后欢迎大家访问我的个人网站: 1024s

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值