摘要
注册表(Registry,繁体中文版Windows操作系统称之为登录档案)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。早在Windows 3.0推出OLE技术的时候,注册表就已经出现。随后推出的Windows NT是第一个从系统级别广泛使用注册表的操作系统。但是,从Microsoft Windows 95操作系统开始,注册表才真正成为Windows用户经常接触的内容,并在其后的操作系统中继续沿用。
正文
命令行,输入regedit

Registry类,RegistryKey类提供了操作注册表的接口
注册表主键
Registry.ClassesRoot:对应于HKEY_CLASSES_ROOT主键
Registry.CurrentUser:对应于HKEY_CURRENT_USER主键
Registry.LocalMachine:对应于 HKEY_LOCAL_MACHINE主键
Registry.User:对应于 HKEY_USER主键
Registry.CurrentConfig:对应于HEKY_CURRENT_CONFIG主键
Registry.DynDa :对应于HKEY_DYN_DATA主键
Registry.PerformanceData:对应于HKEY_PERFORMANCE_DATA主键
RegistryKey类
RegistryKey类封装了对注册表的基本操作。包括读、写、删等操作的常用函数:
Name:键的名称(只读)
SubKeyCount:键的子键个数
ValueCount:键包含的值的个数
Close():关闭键
CreateSubKey():创建给定名称的子键
DeleteSubKey():删除指定的子键
DeleteSubKeyTree():递归删除子键及其所有的子键
DeleteValue():从键中删除一个指定的值
GetAccessControl():返回指定注册表键的访问控制表
GetSubKeyNames():返回包含子键名称的字符串数组
GetValue():返回指定的值
GetValueKind();返回指定的值,检索其注册表数据类型
GetValueNames():返回一个包含所有键值名称的字符串数组
OpenSubKey():返回表示给定子键的RegistryKey实例引用
SetAccessControl():把访问控制表(ACL)应用于指定的注册表键
SetValue();设置指定的值
创建一个Key

private void btnCreateSubKey_Click(object sender, EventArgs e){ //使用CreateSubKey()在SOFTWARE下创建子项IDIOSOFT RegistryKey hklm = Registry.LocalMachine;//HKEY_LOCAL_MACHINE RegistryKey hkSoftWare = hklm.CreateSubKey(@"SOFTWARE\IDIOSOFT"); hklm.Close(); hkSoftWare.Close();}
创建键值

private void btnCreateInfo_Click(object sender, EventArgs e){ //主要用到了SetValue(),表示在IDIOSOFT下创建名称为Name与No RegistryKey hklm = Registry.LocalMachine; //打开现有SubKey节点 RegistryKey key = hklm.OpenSubKey(@"SOFTWARE\IDIOSOFT", true); key.SetValue("Name", "admin", RegistryValueKind.String); key.SetValue("No", "10001", RegistryValueKind.String); hklm.Close(); key.Close();}
取得Value
private void btnReadInfo_Click(object sender, EventArgs e){ //主要用到了GetValue(),获得名称为"Name","No"的键值 RegistryKey hklm = Registry.LocalMachine; RegistryKey hkSoftWare = hklm.OpenSubKey(@"SOFTWARE\IDIOSOFT", true); string Name = hkSoftWare.GetValue("Name").ToString(); string No = hkSoftWare.GetValue("No").ToString(); hklm.Close(); hkSoftWare.Close();}
删除一个键值
private void btnGetValue_Click_1(object sender, EventArgs e){ //主要用到了DeleteValue() //,表示删除名称为"Name"的键值,第二个参数表示是否抛出异常 RegistryKey hklm = Registry.LocalMachine; RegistryKey key = hklm.OpenSubKey(@"SOFTWARE\IDIOSOFT", true); key.DeleteValue("Name", true); hklm.Close(); key.Close();}
删除一个键
private void btnDeleteKey_Click(object sender, EventArgs e){ //主要用到了DeleteSubKey(),删除IDIOSOFT项 RegistryKey hklm = Registry.LocalMachine; //为true时,删除的注册表不存在时抛出异常;当为false时不抛出异常。 hklm.DeleteSubKey(@"SOFTWARE\IDIOSOFT", true); hklm.Close();}
该文章在 2024/5/17 15:44:15 编辑过