zoukankan      html  css  js  c++  java
  • .NET操作注册表的封装类

          我写的一个在.NET下操作注册表的类。

    using System;
    using Microsoft.Win32;
    using System.Collections;

    namespace iUNS
    {
        
    /// <summary>
        
    /// Class1 的摘要说明。
        
    /// </summary>
        public class iuRegistryKey
        {
            
    public iuRegistryKey()
            {
                
    //
                
    // TODO: 在此处添加构造函数逻辑
                
    //
            }

            
    /// <summary>
            
    /// 向注册表写入字符串值,并对其进行base64加密
            
    /// </summary>
            
    /// <param name="subkey">子键</param>
            
    /// <param name="key">键名</param>
            
    /// <param name="val">键值</param>
            
    /// <returns>返回是否成功bool值</returns>
            public static bool setStringValueKeyToEncodingBase64(string subkey,string key,string val)
            {
                
    try
                {
                    RegistryKey rk
    =Registry.LocalMachine.OpenSubKey(subkey,true);
                    
    if(rk==null)
                    {
                        rk
    =Registry.LocalMachine.CreateSubKey(subkey);
                        
    if(rk==null)
                        {
                            
    return false;
                        }
                    }
                    
    byte[] buff=System.Text.Encoding.GetEncoding("gb2312").GetBytes(val);
                    val
    =Convert.ToBase64String(buff,0,buff.Length);    
                    rk.SetValue(key,val);
                    rk.Close();
                    
    return true;
                }
                
    catch
                {
                    
    return false;
                }
            }

            
    /// <summary>
            
    /// 向注册表写入字符串值,并对其进行base64加密
            
    /// </summary>
            
    /// <param name="subkey">子键</param>
            
    /// <param name="key">键名</param>
            
    /// <param name="val">键值</param>
            
    /// <returns>返回是否成功bool值</returns>
            public static bool setStringValueKeyToEncodingMD5(string subkey,string key,string val)
            {
                
    try
                {
                    RegistryKey rk
    =Registry.LocalMachine.OpenSubKey(subkey,true);
                    
    if(rk==null)
                    {
                        rk
    =Registry.LocalMachine.CreateSubKey(subkey);
                        
    if(rk==null)
                        {
                            
    return false;
                        }
                    }
                    val
    =md5.stringToMD5.makeMD5(val);    
                    rk.SetValue(key,val);
                    rk.Close();
                    
    return true;
                }
                
    catch
                {
                    
    return false;
                }
            }

            
    /// <summary>
            
    /// 向注册表写入字符串值,不进行base64加密
            
    /// </summary>
            
    /// <param name="subkey">子键</param>
            
    /// <param name="key">键名</param>
            
    /// <param name="val">键值</param>
            
    /// <returns>返回是否成功bool值</returns>
            public static bool setStringValueKey(string subkey,string key,string val)
            {
                
    try
                {
                    RegistryKey rk
    =Registry.LocalMachine.OpenSubKey(subkey,true);
                    
    if(rk==null)
                    {
                        rk
    =Registry.LocalMachine.CreateSubKey(subkey);
                        
    if(rk==null)
                        {
                            
    return false;
                        }
                    }
                    rk.SetValue(key,val);
                    rk.Close();
                    
    return true;
                }
                
    catch
                {
                    
    return false;
                }
            }

            
    /// <summary>
            
    /// 向注册表写入整型值
            
    /// </summary>
            
    /// <param name="subkey">子键</param>
            
    /// <param name="key">键名</param>
            
    /// <param name="val">键值</param>
            
    /// <returns>返回是否成功bool值</returns>
            public static bool setIntValueKey(string subkey,string key,int val)
            {
                
    try
                {
                    RegistryKey rk
    =Registry.LocalMachine.OpenSubKey(subkey,true);
                    
    if(rk==null)
                    {
                        rk
    =Registry.LocalMachine.CreateSubKey(subkey);
                        
    if(rk==null)
                        {
                            
    return false;
                        }
                    }
                    rk.SetValue(key,val);
                    rk.Close();
                    
    return true;
                }
                
    catch
                {
                    
    return false;
                }
            }

            
    /// <summary>
            
    /// 从注册表读取字串值,并对值进行base64解密返回
            
    /// </summary>
            
    /// </summary>
            
    /// <param name="subkey">子键</param>
            
    /// <param name="key">键名</param>
            
    /// <param name="val">返回取得的字串值</param>
            
    /// <returns>返回是否成功bool值</returns>
            public static bool getStringValueKeyFromEncodingBase64(string subkey,string key,ref string val,string def)
            {
                
    try
                {
                    RegistryKey rk
    =Registry.LocalMachine.OpenSubKey(subkey,true);
                    
    if(rk!=null)
                    {
                        val
    =(string)rk.GetValue(key,"");
                        
    byte[] buff=Convert.FromBase64String(val);
                        val
    =System.Text.Encoding.GetEncoding("gb2312").GetString(buff, 0, buff.Length);
                        
    if(val=="")
                            val
    =def;
                        rk.Close();
                        
    return true;
                    }
                    
    else
                    {
                        
    return false;
                    }
                }
                
    catch
                {
                    
    return false;
                }
            }

            
    /// <summary>
            
    /// 从注册表读取未经加密的字串值
            
    /// </summary>
            
    /// <param name="subkey">字键</param>
            
    /// <param name="key">键名</param>
            
    /// <param name="val">返回的字串值</param>
            
    /// <returns>返回是否成功bool值</returns>
            public static bool getStringValueKey(string subkey,string key,ref string val,string def)
            {
                
    try
                {
                    RegistryKey rk
    =Registry.LocalMachine.OpenSubKey(subkey,true);
                    
    if(rk!=null)
                    {
                        val
    =(string)rk.GetValue(key,"");
                        
    if(val=="")
                            val
    =def;
                        rk.Close();
                        
    return true;
                    }
                    
    else
                    {
                        
    return false;
                    }
                }
                
    catch
                {
                    
    return false;
                }
            }

            
    /// <summary>
            
    /// 从注册表读取整型值
            
    /// </summary>
            
    /// <param name="subkey">子键</param>
            
    /// <param name="key">键名</param>
            
    /// <param name="val">返回取得的整型值,默认值为0</param>
            
    /// <returns>返回是否成功bool值</returns>
            public static bool getIntValueKey(string subkey,string key,ref int val,int def)
            {
                
    try
                {
                    RegistryKey rk
    =Registry.LocalMachine.OpenSubKey(subkey,true);
                    
    if(rk!=null)
                    {
                        val
    =(int)rk.GetValue(key,-1);
                        
    if(val==-1)
                            val
    =def;
                        rk.Close();
                        
    return true;
                    }
                    
    else
                    {
                        
    return false;
                    }
                }
                
    catch
                {
                    
    return false;
                }
            }

            
    /// <summary>
            
    /// 取得一个注册表子键下所有键名的数组
            
    /// </summary>
            
    /// <param name="subkey">子键</param>
            
    /// <param name="valList">存放返回的数组</param>
            
    /// <returns>返回是否成功bool值</returns>
            public static bool getSubKeyValueNames(string subkey,ref ArrayList valList)
            {
                
    try
                {
                    RegistryKey rk
    =Registry.LocalMachine.OpenSubKey(subkey,true);
                    
    if(rk!=null)
                    {
                        
    string[] val=rk.GetValueNames();
                        
    for(int i=0;i<val.Length;i++)
                        {
                            valList.Add(val[i]);
                        }
                        rk.Close();
                        
    return true;
                    }
                    
    else
                    {
                        
    return false;
                    }
                }
                
    catch
                {
                    
    return false;
                }
            }

            
    /// <summary>
            
    /// 删除一个指定的键
            
    /// </summary>
            
    /// <param name="subkey">子键</param>
            
    /// <param name="key">键名</param>
            
    /// <returns>返回是否成功bool值</returns>
            public static bool delValueKey(string subkey,string key)
            {
                
    try
                {
                    RegistryKey rk
    =Registry.LocalMachine.OpenSubKey(subkey,true);
                    
    if(rk!=null)
                    {
                        rk.DeleteValue(key);
                        rk.Close();
                        
    return true;
                    }
                    
    else
                    {
                        
    return false;
                    }
                }
                
    catch
                {
                    
    return false;
                }
            }
        }
    }
  • 相关阅读:
    Yolo v3代码理解总结
    CRNN数据及标签
    Yolo V3整体实现思路流程详解!
    YOLO V3训练自己的数据集
    Yolo V3理解bbox和label的关系
    深度学习图像扩增
    YOLOv3 K-means获取anchors大小
    CTPN训练自己的数据集过程大白话记录
    浙大版《C语言程序设计(第3版)》题目集 练习4-11 统计素数并求和 (20 分)
    浙大版《C语言程序设计(第3版)》题目集 练习4-10 找出最小值 (20 分)
  • 原文地址:https://www.cnblogs.com/taobataoma/p/733248.html
Copyright © 2011-2022 走看看