• 检查电脑本地IE 证书等操作 注册表辅助类


    /// <summary>
    /// 注册表辅助类
    /// </summary>

    public class RegistryHelper
        {
            #region 需要权限才可以操作
            private const string SoftName = "OfficeConvertService";//您的软件所用到的注册表节点,所有键值对将在该节下创建
    
            /// <summary>
            /// 取得注册表值 需要权限
            /// </summary>
            /// <param name="name"></param>
            /// <returns></returns>
            public static string GetKeyValue(string name)
            {
                RegistryKey hkml = Registry.LocalMachine;
                RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
                if (software != null)
                {
                    RegistryKey subKeys = software.OpenSubKey(SoftName, true);
                    if (subKeys != null)
                    {
                        string registData = subKeys.GetValue(name).ToString();
                        return registData;
                    }
                }
                return string.Empty;
            }
    
            /// <summary>
            /// 添加注册表键值对 需要权限
            /// </summary>
            /// <param name="key"></param>
            /// <param name="keyValue"></param>
            public static void AddKey(string key, string keyValue)
            {
                RegistryKey hklm = Registry.LocalMachine;
                RegistryKey software = hklm.OpenSubKey("SOFTWARE", true);
                if (software != null)
                {
                    RegistryKey subKey = software.CreateSubKey(SoftName);
                    if (subKey != null) subKey.SetValue(key, keyValue);
                }
            }
    
            /// <summary>
            /// 删除注册表键 需要权限
            /// </summary>
            /// <param name="key"></param>
            public static void DeleteKey(string key)
            {
                RegistryKey hkml = Registry.LocalMachine;
                RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
                if (software != null)
                {
                    RegistryKey subKey = software.OpenSubKey(SoftName, true);
                    if (subKey != null)
                    {
                        string[] aimnames = subKey.GetSubKeyNames();
                        foreach (string aimKey in aimnames)
                        {
                            if (aimKey == key)
                                subKey.DeleteSubKeyTree(key);
                        }
                    }
                }
            }
    
            /// <summary>
            /// 检查注册表是否存在键 需要权限
            /// </summary>
            /// <param name="key"></param>
            /// <returns></returns>
            public static bool IsRegisted(string key)
            {
                try
                {
                    RegistryKey hkml = Registry.LocalMachine;
                    RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
                    if (software != null)
                    {
                        RegistryKey subKeys = software.OpenSubKey(SoftName, true);
                        if (subKeys != null)
                        {
                            string[] keyNames = subKeys.GetValueNames();
                            foreach (string keyName in keyNames)
                            {
                                if (keyName == key)
                                {
                                    return true;
                                }
                            }
                        }
                    }
                }
                catch
                {
                    return false;
                }
                return false;
            }
            #endregion
    
    
            /// <summary>
            /// 检查服务器证书是否吊销
            /// </summary>
            /// <param name="isOpen">1开启,0关闭</param>
            public void SetCertificateVerificationState(bool isOpen)
            {     
                var internetSettings = @"SoftwareMicrosoftWindowsCurrentVersionInternet Settings";
                RegistryHelper.ModifyCurrentUserRegistryKey(internetSettings, "CertificateRevocation", isOpen ? "1" : "0");
            }
            /// <summary>
            /// 检查发行商的证书是否吊销
            /// </summary>
            /// <param name="isOpen"> 0 开启,512 取消</param>
            public void SetCertificatePublishingState(bool isOpen)
            {
                var softwarePublishing = @"SoftwareMicrosoftWindowsCurrentVersionWinTrustTrust ProvidersSoftware Publishing";
                RegistryHelper.ModifyCurrentUserRegistryKey(softwarePublishing, "State", isOpen ? "0" : "512 ");     
            }
    
            /// <summary>
            /// 修改IE安全等级为中
            /// </summary>
            public void SetInternetProtectLevelNormal()
            {
                //"CurrentLevel"=dword:00011000
                //"MinLevel" = dword:00011000
                //"RecommendedLevel" = dword:00011000
    
                var internetSettings = @"HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settingsones3";
                RegistryHelper.ModifyCurrentUserRegistryKey(internetSettings, "CurrentLevel", "00011000");
                RegistryHelper.ModifyCurrentUserRegistryKey(internetSettings, "MinLevel", "00011000");
                RegistryHelper.ModifyCurrentUserRegistryKey(internetSettings, "RecommendedLevel", "00011000");
            }
    
            /// <summary>
            /// 设置SSL And TSL 是否勾选
            /// </summary>
            /// <param name="isOpen"></param>
            public static void SetSSLAndTSLState(bool isOpen)
            {
                //使用SSL3.0和TLS1.0
                var internetSettings = @"SoftwareMicrosoftWindowsCurrentVersionInternet Settings";
                RegistryHelper.ModifyCurrentUserRegistryKey(internetSettings, "SecureProtocols", isOpen ? "2688" : "0");
            }
            /// <summary>
            /// 注册表修改
            /// </summary>
            /// <param name="registerPath">注册表地址</param>
            /// <param name="key">键</param>
            /// <param name="value">值</param>
            /// <returns></returns>
            public static bool ModifyCurrentUserRegistryKey(string registerPath, string key, string value)
            {
                RegistryKey currentUserKey = null;
                RegistryKey subKey = null;
                try
                {
                    currentUserKey = Registry.CurrentUser;
                    subKey = GetSubKey(currentUserKey, registerPath);
    
                    if (subKey != null)
                    {
                        subKey.SetValue(key, value, RegistryValueKind.DWord);
                        subKey.Close();
                        subKey.Dispose();
                    }
                }
                catch (Exception e)
                {
                    subKey?.Close();
                    subKey?.Dispose();
                    return false;
                }
                currentUserKey?.Close();
                currentUserKey?.Dispose();
                return true;
            }
    
            /// <summary>
            /// 检查注册表是否存在
            /// </summary>
            /// <param name="currentUserKey">注册键</param>
            /// <param name="registerPath">注册表地址</param>
            /// <returns></returns>
            private static RegistryKey GetSubKey(RegistryKey currentUserKey, string registerPath)
            {
                RegistryKey subKey;
                subKey = currentUserKey.OpenSubKey(registerPath, true);
                if (subKey == null)
                {
                    subKey = currentUserKey.CreateSubKey(registerPath, RegistryKeyPermissionCheck.ReadWriteSubTree);
                }
    
                return subKey;
            }
    
            // <summary>
            /// 重置IE浏览器
            /// </summary>
            public void ResetInternetSetting()
            {
                var internetSettings = @"SoftwareMicrosoftInternet Explorer";
                RegistryHelper.DeleteCurrentUserRegistryPath(internetSettings);
            }
    
            /// <summary>
            /// 重置IE浏览器
            /// </summary>
            /// <param name="registerPath"></param>
            /// <returns></returns>
            public static bool DeleteCurrentUserRegistryPath(string registerPath)
            {
                RegistryKey currentUserKey = null;
                try
                {
                    currentUserKey = Registry.CurrentUser;
                    currentUserKey.DeleteSubKey(registerPath, false);
                }
                catch (Exception e)
                {
                    return false;
                }
                currentUserKey?.Close();
                currentUserKey?.Dispose();
                return true;
            }
        }
    

      

  • 相关阅读:
    计算机算法设计与分析之棋盘覆盖问题
    在uboot里面加入环境变量使用run来运行
    软件project师的属性与发展
    Oracle 表三种连接方式(sql优化)
    POJ 1700 cross river (数学模拟)
    八:Java之I/O
    为 Python Server Pages 和 Oracle 构建快速 Web 开发环境。
    WebBot
    WebBrowserProgramming
    Skulpt
  • 原文地址:https://www.cnblogs.com/yuanye0918/p/14656936.html
Copyright © 2020-2023  润新知