• 注册表操作类


    //快放假了。整理历史搜集代码中的文章。不想删除,所以贴上来。

    using System;
    using System.IO;
    using System.Runtime.InteropServices;
    using System.Text;
    using Microsoft.Win32;
    namespace Utils
    {
        /// <summary>
        /// 注册表操作的类封装
        /// </summary>
        public class RegistryEx
        {
            /// <summary>
            /// 当前操作的注册表根键
            /// </summary>
            private static RegistryKey rootkey;
            /// <summary>
            /// 构造根键为RootKey的注册表操作类,缺省打开Current_User主键
            /// </summary>
            /// <param name="RootKey">要打开的注册表根键,字符串型 如 LOCAL_MACHINE 代表 LocalMachine注册表段</param>
            public RegistryEx(string RootKey)
            {
                switch (RootKey.ToUpper())
                {
                    case "CLASSES_ROOT":
                        rootkey = Registry.ClassesRoot;
                        break;
                    case "CURRENT_USER":
                        rootkey = Registry.CurrentUser;
                        break;
                    case "LOCAL_MACHINE":
                        rootkey = Registry.LocalMachine;
                        break;
                    case "USERS":
                        rootkey = Registry.Users;
                        break;
                    case "CURRENT_CONFIG":
                        rootkey = Registry.CurrentConfig;
                        break;
                    case "DYN_DATA":
                        rootkey = Registry.DynData;
                        break;
                    case "PERFORMANCE_DATA":
                        rootkey = Registry.PerformanceData;
                        break;
                    default:
                        rootkey = Registry.CurrentUser;
                        break;
                }
            }
            /// <summary>
            /// 读取路径为keypath,键名为keyname的注册表键值,缺省返回def
            /// </summary>
            /// <param name="keypath">读取路径</param>
            /// <param name="keyname">键名</param>
            /// <param name="def">默认值</param>
            /// <returns>读取到的注册表键值</returns>
            public string GetRegVal(string keypath, string keyname, string def)
            {
                try
                {
                    RegistryKey key = rootkey.OpenSubKey(keypath);
                    return key.GetValue(keyname, (object)def).ToString();
                }
                catch
                {
                    return def;
                }
            }
            /// <summary>
            /// 设置路径为keypath,键名为keyname的注册表键值为keyval
            /// </summary>
            /// <param name="keypath">设置路径</param>
            /// <param name="keyname">键名</param>
            /// <param name="keyval">键值</param>
            /// <returns>设置结果 True/False 成功与否</returns>
            public bool SetRegVal(string keypath, string keyname, string keyval)
            {
                try
                {
                    RegistryKey key = rootkey.OpenSubKey(keypath, true);
                    key.SetValue(keyname, (object)keyval);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
            /// <summary>
            ///  创建路径为keypath的键
            /// </summary>
            /// <param name="keypath">欲创建的键路径</param>
            /// <returns>创建后的注册表键,失败返回null</returns>
            public RegistryKey CreateRegKey(string keypath)
            {
                try
                {
                    return rootkey.CreateSubKey(keypath);
                }
                catch
                {
                    return null;
                }
            }
            /// <summary>
            /// 删除路径为keypath的子项
            /// </summary>
            /// <param name="keypath">欲删除的路径</param>
            /// <returns>删除结果 True/False 成功与否</returns>
            public bool DelRegSubKey(string keypath)
            {
                try
                {
                    rootkey.DeleteSubKey(keypath);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
            /// <summary>
            /// 删除路径为keypath的子项及其附属子项
            /// </summary>
            /// <param name="keypath">欲删除的路径</param>
            /// <returns>删除结果 True/False 成功与否</returns>
            public bool DelRegSubKeyTree(string keypath)
            {
                try
                {
                    rootkey.DeleteSubKeyTree(keypath);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
            /// <summary>
            /// 删除路径为keypath下键名为keyname的键值
            /// </summary>
            /// <param name="keypath">路径</param>
            /// <param name="keyname">键名</param>
            /// <returns>删除结果 True/False 成功与否</returns>
            public bool DelRegKeyVal(string keypath, string keyname)
            {
                try
                {
                    RegistryKey key = rootkey.OpenSubKey(keypath, true);
                    key.DeleteValue(keyname);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
        }
    }

  • 相关阅读:
    417 Pacific Atlantic Water Flow 太平洋大西洋水流
    416 Partition Equal Subset Sum 分割相同子集和
    415 Add Strings 字符串相加
    414 Third Maximum Number 第三大的数
    413 Arithmetic Slices 等差数列划分
    412 Fizz Buzz
    410 Split Array Largest Sum 分割数组的最大值
    409 Longest Palindrome 最长回文串
    day22 collection 模块 (顺便对比queue也学习了一下队列)
    day21 计算器作业
  • 原文地址:https://www.cnblogs.com/xqf222/p/3306824.html
Copyright © 2020-2023  润新知