• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#修改注册表设置默认浏览器-TripleKing

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

项目中用到VPN技术登录来访问内部网络的应用系统,VPN客户端连接后会自动以默认浏览器来打开站点,由于应用系统使用的前端框架对IE浏览器版本要求较高,而用户大多数的电脑里安装的IE的版本都较低,于是想到U盘里放上免安装的浏览器,接着通过执行一个程序自动将U盘里的浏览器设置为默认浏览器。winXP和win7设置默认浏览器的注册表项会有所不同,具体C#代码如下:

public static void CreateUSBWebUrlForWin7()
        {
            string currentPath = System.AppDomain.CurrentDomain.BaseDirectory;

            RegistryKey regCR = Registry.ClassesRoot;
            RegistryKey regCommand = null;
            if (!IsExistSubKey(regCR, DIY_KEY_NAME))
            {
                //创建自定义的注册表项
                regCommand = regCR.CreateSubKey(DIY_KEY_NAME, RegistryKeyPermissionCheck.ReadWriteSubTree)
                .CreateSubKey("Shell", RegistryKeyPermissionCheck.ReadWriteSubTree)
                .CreateSubKey("open", RegistryKeyPermissionCheck.ReadWriteSubTree)
                .CreateSubKey("command", RegistryKeyPermissionCheck.ReadWriteSubTree);
            }
            else
            {
                //打开已存在的自定义注册表项
                regCommand = regCR.OpenSubKey(DIY_KEY_NAME, true)
                    .OpenSubKey("Shell", true)
                    .OpenSubKey("open", true)
                .OpenSubKey("command", true);
            }
            regCommand.SetValue("", "\"" + currentPath + "\\360se6\\Application\\360se.exe\" -- \"%1\"");

            RegistryKey regCU = Registry.CurrentUser;
            RegistryKey regUrlAssoc = regCU.OpenSubKey("Software", true).OpenSubKey("Microsoft", true).OpenSubKey("Windows", true)
                .OpenSubKey("Shell", true)
                .OpenSubKey("Associations", true)
                .OpenSubKey("UrlAssociations", true);
            RegistryKey regHttpChoice = regUrlAssoc.OpenSubKey("http", true).OpenSubKey("UserChoice", true);
            regHttpChoice.SetValue("Progid", DIY_KEY_NAME);
            RegistryKey regHttpsChoice = regUrlAssoc.OpenSubKey("https", true).OpenSubKey("UserChoice", true);
            regHttpsChoice.SetValue("Progid", DIY_KEY_NAME);
        }
public static void CreateUSBWebUrlForWinXP()
        {
            string currentPath = System.AppDomain.CurrentDomain.BaseDirectory;

            RegistryKey regCR = Registry.ClassesRoot;
            RegistryKey regCRhttp = regCR.OpenSubKey("http", true).OpenSubKey("shell", true).OpenSubKey("open", true);
            RegistryKey regHttpCmd = regCRhttp.OpenSubKey("command", true);
            regHttpCmd.SetValue("", "\"" + currentPath + "\\360se6\\Application\\360se.exe\" -- \"%1\"");
            RegistryKey regCRhttps = regCR.OpenSubKey("https", true).OpenSubKey("shell", true).OpenSubKey("open", true);
            RegistryKey regHttpsCmd = regCRhttps.OpenSubKey("command", true);
            regHttpsCmd.SetValue("", "\"" + currentPath + "\\360se6\\Application\\360se.exe\" -- \"%1\"");
        }
private static bool IsExistSubKey(RegistryKey key,string subKeyName)
        {
            string[] subKeyNames = key.GetSubKeyNames();
            foreach (string keyName in subKeyNames)
            {
                if (keyName == subKeyName)
                {
                    return true;
                }
            }
            return false;
        }

对于系统是winXP还是win7的判断可以用以下代码判断:

int sysVer = System.Environment.OSVersion.Version.Major;
            switch (sysVer)
            {
                case 5: CreateUSBWebUrlForWinXP(); break;
                case 6: CreateUSBWebUrlForWin7(); break;
            }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++Primer第5版第十八章课后练习答案发布时间:2022-07-13
下一篇:
新手入门C语言第九章:C函数发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap