C#操作注册表——读、写、删除、判断等基本操作 (转)

2021-04-25 06:26

阅读:730

标签:using   close   cal   returns   eval   each   添加   技术分享   setvalue   

一、引入命名空间:

using Microsoft.Win32;

 

二、创建注册表项:CreateSubKey(name)方法

添加SubKey时候首先要打开一个表项,并设置参数为true,才能成功创建子项

//给要创建的注册表设置一个变量,使用更方便
private string RegistFileName = "test";
技术分享图片
/// 
/// 创建一个test注册表项,下面包含OpenLog,和SaveLog两个子项
/// 
private void CreateRegistFile()
{
  //SOFTWARE在LocalMachine分支下
RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE",true); RegistryKey software = key.CreateSubKey(RegistFileName); RegistryKey test = key.OpenSubKey(RegistFileName,true); RegistryKey Savekey = test.CreateSubKey("SaveLog"); }
技术分享图片

 

三、删除注册表项:DeleteSubKey(name,true)方法

RegistryKey key = Registry.LocalMachine;
RegistryKey software = key.OpenSubKey("SOFTWARE", true);
RegistryKey test = software.OpenSubKey(RegistFileName, true);
test.DeleteSubKey("SaveLog",true); 

 

四、添加键值:SetValue(name,value)方法

技术分享图片
/// 
/// 将path写入OPenLog子项
/// 
private void writeToRegistFile(string path)
{
  RegistryKey key = Registry.LocalMachine;
  RegistryKey software = key.OpenSubKey("SOFTWARE", true);
  RegistryKey test = software.OpenSubKey(RegistFileName, true);
  RegistryKey OpenPath = test.OpenSubKey("OpenLog",true);
  //"name"是该键值的name,相当于一个别名,可自行设置
  OpenPath.SetValue("name", path); }
技术分享图片

 

五、删除键值:DeleteValue(name)方法

技术分享图片
RegistryKey key = Registry.LocalMachine;
RegistryKey software = key.OpenSubKey("SOFTWARE", true);
RegistryKey test = software.OpenSubKey(RegistFileName, true);
RegistryKey OpenPath = test.OpenSubKey("SaveLog",true);
//删除SaveLog子项下的名为SaveLog的子键
OpenPath.DeleteValue("name");
技术分享图片

 

六、判断注册表项是否存在:

技术分享图片
/// 
/// 判断注册表项是否存在
/// 
/// bool
private bool IsRegeditItemExist()
{
  string[] subkeyNames;
  RegistryKey key = Registry.LocalMachine;
  RegistryKey software = key.OpenSubKey("SOFTWARE");
  subkeyNames = software.GetSubKeyNames();
  //在这里我是判断test表项是否存在
  foreach (string keyName in subkeyNames)
  {
    if (keyName == RegistFileName)
    {
      key.Close();
      return true;
    }
  }
  key.Close();
  return false;
}
技术分享图片

 

七、判断键值是否存在:

技术分享图片
/// 
/// 判断该路径是否已经存在
/// 
/// 路径
/// 
private bool IsRegeditKeyExit(string name)
{string[] saveSubkeyNames;

    RegistryKey key = Registry.LocalMachine;
    RegistryKey software = key.OpenSubKey("SOFTWARE", true);
    RegistryKey test = software.OpenSubKey(RegistFileName, true);
    RegistryKey Savekey = test.OpenSubKey("SaveLog", true);
  //获取该子项下的所有键值的名称saveSubkeyNames saveSubkeyNames = Savekey.GetSubKeyNames(); foreach(string keyName in openSubkeyNames) { if(keyName == name) { key.Close(); return false; } } key.Close(); return true; }
技术分享图片

 

注:如果没有该注册表项或键值,则返回的值为空值,若不经处理运行程序会抛出异常。

C#操作注册表——读、写、删除、判断等基本操作 (转)

标签:using   close   cal   returns   eval   each   添加   技术分享   setvalue   

原文地址:http://www.cnblogs.com/candyzhmm/p/7922079.html


评论


亲,登录后才可以留言!