注册表很多软件都可以获取值和更改值,所以软件重要内容不建议放注册表。
本篇内容实践一下用C#操作注册表
1.首先要引用微软官方提供的命名空间:【using Microsoft.Win32】
using Microsoft.Win32;
2.Microsoft.Win32提供了一个类:RegistryKey,提供了注册表第一层分支,包含:
CurrentUser 存储有关用户首选项的信息。
LocalMachine 存储本地计算机的配置信息。
ClassesRoot 存储有关类型(和类)及其属性的信息。
Users 存储有关默认用户配置的信息。
PerformanceData 存储软件组件的性能信息。
CurrentConfig 存储非用户特定的硬件信息。
DynData 存储动态数据。
例如:定位到 【LocalMachine 】
RegistryKey key = Registry.LocalMachine;
3.打开已知的下一层目录,例如打开【LocalMachine】下的【SOFTWARE】
Registry.LocalMachine.OpenSubKey("SOFTWARE");
注册表具体操作如下:
1:创建:创建注册表项主要用到RegistryKey 的CreateSubKey()方法。如:
RegistryKey key = Registry.LocalMachine; RegistryKey software = key.CreateSubKey("test");//
注意:如果注册表已经存在也不会抛错!
2:打开:打开注册表项主要用到RegistryKey 的OpenSubKey()方法。如:
RegistryKey key = Registry.LocalMachine; RegistryKey software = key.OpenSubKey("test", true或者false);
注意:该方法后面还可以有一个布尔型的参数,true表示可以写入,默认为false。
3:删除:删除注册表项主要用到RegistryKey 的DeleteSubKey()方法。如:
RegistryKey key = Registry.LocalMachine; key.DeleteSubKey("test",true); //该方法无返回值,直接调用即可 key.Close();
注意:如果该注册表项不存在,方法会抛出异常
4:创建(设置值、修改):
对键值的创建修改等操作主要用到RegistryKey 的SetValue()方法
RegistryKey key = Registry.LocalMachine; RegistryKey software = key.OpenSubKey("software", true); //定位该项必须已存在 software.SetValue("test", "TEST ONCE MORE");
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform", false); var s=key.GetValue("BackupProductKeyDefault");