zoukankan      html  css  js  c++  java
  • C#对注册表的操作

    一、引入命名空间:

    using Microsoft.Win32;

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

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

    //给要创建的注册表设置一个变量,使用更方便
    private string RegistFileName = "test";
    复制代码
    /// <summary>
    /// 创建一个test注册表项,下面包含OpenLog,和SaveLog两个子项
    /// </summary>
    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)方法

    复制代码
    /// <summary>
    /// 将path写入OPenLog子项
    /// </summary>
    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");
    复制代码

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

    复制代码
    /// <summary>
    /// 判断注册表项是否存在
    /// </summary>
    /// <returns>bool</returns>
    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;
    }
    复制代码

    七、判断键值是否存在:

    复制代码
    /// <summary>
    /// 判断该路径是否已经存在
    /// </summary>
    /// <param name="path">路径</param>
    /// <returns></returns>
    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; }
  • 相关阅读:
    Windows下搭建JSP开发环境
    ssh 学习笔记
    18 11 27 长连接 短链接
    18 11 26 用多进程 多线程 携程 实现 http 服务器的创建
    18 11 24 简单的http服务器
    关于 某个智慧树课堂的 机器与机器交流方法
    18 11 23 正则学习
    尝试解决 : Microsoft Visual C++ 14.0 is required 的问题
    18 11 20 网络通信 ----多任务---- 携程 ----生成器
    18 11 20 网络通信 ----多任务---- 携程 ----迭代器
  • 原文地址:https://www.cnblogs.com/AlexOneBlogs/p/7808552.html
Copyright © 2011-2022 走看看