摘要
注册表(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 编辑过