zoukankan      html  css  js  c++  java
  • C# 注册表操作类(查询、修改、删除)

    注册表操作需要获取管理员权限,可以将exe设置为管理员启动。具体操作代码如下:

    /// <summary>
    /// 注册表  HKEY_LOCAL_MACHINE/SOFTWARE 节点下
    /// </summary>
    public static class RegistryHelper
    {
        private const string Node = "SOFTWARE";
    
        public static string GetRegistryData(string node, string key)
        {
            string registData;
            RegistryKey hkml = Registry.LocalMachine;
            RegistryKey software = hkml.OpenSubKey(Node, true);
            RegistryKey dir = software.OpenSubKey(node, true);
            registData = dir.GetValue(key)?.ToString();
            return registData;
        }
    
        /// <summary>
        /// 写入注册表
        /// </summary>
        /// <param name="node">节点</param>
        /// <param name="name">注册项名称</param>
        /// <param name="value">注册项值</param>
        public static void WriteRegistry(string node, string name, string value)
        {
            RegistryKey hklm = Registry.LocalMachine;
            RegistryKey software = hklm.OpenSubKey(Node, true);
            RegistryKey dir = software.CreateSubKey(node);
            if (dir != null)
                dir.SetValue(name, value);
        }
    
        /// <summary>
        /// 删除注册表
        /// </summary>
        /// <param name="node"></param>
        /// <param name="name"></param>
        public static void DeleteRegistry(string node, string name)
        {
            string[] aimnames;
            RegistryKey hkml = Registry.LocalMachine;
            RegistryKey software = hkml.OpenSubKey(Node, true);
            RegistryKey dir = software.OpenSubKey(node, true);
            aimnames = dir.GetSubKeyNames();
            foreach (string aimKey in aimnames)
            {
                if (aimKey == name)
                    dir.DeleteSubKeyTree(name);
            }
        }
    
        /// <summary>
        /// 查询节点是否存在
        /// </summary>
        /// <param name="node"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static bool IsRegeditExit(string node, string name)
        {
            bool _exit = false;
            string[] subkeyNames;
            RegistryKey hkml = Registry.LocalMachine;
            RegistryKey software = hkml.OpenSubKey(Node, true);
            RegistryKey dir = software.OpenSubKey(node, true);
            subkeyNames = dir.GetSubKeyNames();
            foreach (string keyName in subkeyNames)
            {
                if (keyName == name)
                {
                    _exit = true;
                    return _exit;
                }
            }
            return _exit;
        }
    }
    
  • 相关阅读:
    一致性哈希算法
    Discourse 的标签(Tag)只能是小写的原因
    JIRA 链接 bitbucket 提示错误 Invalid OAuth credentials
    JIRA 如何连接到云平台的 bitbucket
    Apache Druid 能够支持即席查询
    如何在 Discourse 中配置使用 GitHub 登录和创建用户
    Apache Druid 是什么
    Xshell 如何导入 PuTTYgen 生成的 key
    windows下配置Nginx支持php
    laravel连接数据库提示mysql_connect() :Connection refused...
  • 原文地址:https://www.cnblogs.com/yincq/p/13652694.html
Copyright © 2011-2022 走看看