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;
        }
    }
    
  • 相关阅读:
    数据预处理 --Sklearn preprocessing的理解
    平衡二叉树的插入旋转
    二叉树
    malloc/free 与 new/delete的区别
    C/C++ const总结
    C/C++ static总结
    C++未定义行为
    c++虚函数表
    visual studio mfc中 cout 输出
    ERROR C4996 UNSAFE
  • 原文地址:https://www.cnblogs.com/yincq/p/13652694.html
Copyright © 2011-2022 走看看