首页 > 编程语言 >C# 调用浏览器打开网址

C# 调用浏览器打开网址

时间:2023-07-28 12:12:56浏览次数:48  
标签:Files exe 浏览器 string isOpen C# 网址 url

  • 调用方法体
            public void OpenBrowser()
            {
                string url = "http://localhost:8055/api";
                bool openRes = OpenBrowserHelper.OpenChromeBrowserUrl(url);
    
                if (!openRes)
                    openRes = OpenBrowserHelper.OpenDefaultBrowserUrl(url);
    
                if (!openRes)
                {
                    // 打开下载链接,从官网下载 谷歌
                    if (MessageBox.Show("系统未安装谷歌(Chrome)浏览器,是否下载安装?", null, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        OpenBrowserHelper.OpenIe("https://www.google.cn/chrome/");
                    }
                }
            }
  • 打开浏览器帮助类
    public class OpenBrowserHelper
        {
            /// <summary>
            /// 调用谷歌(Chrome)浏览器
            /// </summary>
            /// <param name="url">打开网页的链接</param>
            public static bool OpenChromeBrowserUrl(string url)
            {
                bool isOpen = true;
                try
                {
                    // 谷歌浏览器就用谷歌打开,没找到就用系统默认的浏览器
                    // 谷歌卸载了,注册表还没有清空,程序会返回一个"系统找不到指定的文件。"的bug
                    var chromeKey = @"\Software\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe";
                    // 通过注册表找到谷歌浏览器安装路径
                    string chromeAppFileName = (string)(Registry.GetValue("HKEY_LOCAL_MACHINE" + chromeKey, "", null) ?? Registry.GetValue("HKEY_CURRENT_USER" + chromeKey, "", null));
                    // 找到谷歌浏览器则打开
                    if (!string.IsNullOrWhiteSpace(chromeAppFileName))
                    {
                        Process.Start(chromeAppFileName, url);
                    }
                    else
                    {
                        isOpen = false;
                        //默认浏览器打开
                       //OpenDefaultBrowserUrl(url);
                    }
                }
                catch
                {
                    isOpen = false;
                }
    
                return isOpen;
            }
    
            /// <summary>
            /// 调用IE浏览器
            /// </summary>
            /// <param name="url"></param>
            public static void OpenIe(string url)
            {
                // IE浏览器路径安装:C:\Program Files\Internet Explorer
                // at System.Diagnostics.process.StartWithshellExecuteEx(ProcessStartInfo startInfo)注意这个错误
                try
                {
                    if (File.Exists(@"C:\Program Files\Internet Explorer\iexplore.exe"))
                    {
                        ProcessStartInfo processStartInfo = new ProcessStartInfo
                        {
                            FileName = @"C:\Program Files\Internet Explorer\iexplore.exe",
                            Arguments = url,
                            UseShellExecute = false,
                            CreateNoWindow = true
                        };
                        Process.Start(processStartInfo);
                    }
                    else
                    {
                        if (File.Exists(@"C:\Program Files (x86)\Internet Explorer\iexplore.exe"))
                        {
                            ProcessStartInfo processStartInfo = new ProcessStartInfo
                            {
                                FileName = @"C:\Program Files (x86)\Internet Explorer\iexplore.exe",
                                Arguments = url,
                                UseShellExecute = false,
                                CreateNoWindow = true
                            };
                            Process.Start(processStartInfo);
                        }                    
                    }
                }
                catch (Exception exception)
                {                
                }
            }
    
            /// <summary>
            /// 调用系统默认浏览器(用户自己设置了默认浏览器)
            /// </summary>
            /// <param name="url"></param>
            public static bool OpenDefaultBrowserUrl(string url)
            {
                bool isOpen = true;
                try
                {
                    //从注册表中读取默认浏览器可执行文件路径
                    RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"http\shell\open\command\");
                    if (key != null)
                    {
                        string browserPath = string.Empty;
                        string[] splitArr = new string[] { };
                        string browser = key.GetValue("").ToString();
    
                        //browser是默认浏览器,不同的浏览器后面的参数不一样。例如:"D:\Program Files (x86)\Google\chrome.exe" -- "%1"
                        var lastIndex = browser.IndexOf(".exe", StringComparison.Ordinal);
                        if (lastIndex == -1)
                            lastIndex = browser.IndexOf(".EXE", StringComparison.Ordinal);
    
                        if (lastIndex != -1)
                        {
                            splitArr = browser.Split("\"");
                        }
                        //大于0 说明 按照 " 切割到数据
                        if (splitArr.Length > 0)
                        {
                            browserPath = splitArr[1];
                        }
                        else if (splitArr.Length == 0 && lastIndex != -1) //说明有浏览器,列如:D:\QQBrowser\QQBrowser.exe
                        {
                            browserPath = browser;
                        }
                        //打开浏览器
                        var result = Process.Start(browserPath, url);
    
                        //调用IE
                        //if (result == null)
                        //    OpenIe(url);
                    }
                    else
                    {
                        isOpen = false; 
                       //OpenIe(url);
                    }
                        
                }
                catch
                {
                    isOpen = false;
                }
                return isOpen;
            }
        }

     

标签:Files,exe,浏览器,string,isOpen,C#,网址,url
From: https://www.cnblogs.com/LaoPaoEr/p/17587220.html

相关文章

  • HDC.Together2023 HarmonyOS学生公开课议程抢先看!
     未来已来,见证相遇万众瞩目的HarmonyOS学生公开课于8月6日9:30正式起航关注HarmonyOS生态前景聚焦HarmonyOS新技术畅谈HarmonyOS未来把握时代发展机遇,让我们同心而行和HarmonyOS一起创造无限可能   ......
  • G3、CGAN|生成手势图像
    ......
  • Cache(十二)Cache(十三)
    父子表介绍及创建举例:  创建操作步骤(不用填sqlrowid表达式,根据父表自动生成)   父子表的新增、查询、事务 cache130.14.19......
  • IEC61850协议名词解释
    组态文件SCL(SubstationConfigurationLanguage):变电站配置语言SCD(SubstationConfigurationDescription):全站系统配置文件,描述所有IED的实例配置和通讯参数,IED之间的通讯配置以及变电站一次系统结构,由系统集成商完成CID(ConfiguredIEDDescription):IED实例配置文件,由装置制造厂商使......
  • oracle数据库中的%type 及%rowtype
    1%TYPE说明为了使一个变量的数据类型与另一个已经定义了的变量(尤其是表的某一列)的数据类型相一致,Oracle提供了%TYPE定义方式。当被参照的那个变量的数据类型改变了之后,这个新定义的变量的数据类型会自动跟随其改变,容易保持一致,也不用修改PL/SQL程序了。当不能确切地知道被参照的......
  • MVC图片控件通过src赋值路径
    我这里用到了Layui的框架,自动忽略就行,只关注img图片控件即可1<divclass="layui-input-block">2@*图片控件*@3<imgname="imgId"src=""style="width:100px;height:100px"/>45......
  • Centos7安装docker
    1、root账户登录,查看内核版本如下:[root@localhost~]# uname-a Linuxlocalhost.qgc3.10.0-862.11.6.el7.x86_64#1SMPTueAug1421:49:04UTC2018x86_64x86_64x86_64GNU/Linux 2、(可选)把yum包更新到最新(生产环境慎重!yumupdate会对软件包和内核升级,此处只是为......
  • 读excel
    #导包importxlrd#第一步根据包提供的方法读某个路径下的xlsworkbook=xlrd.open_workbook('../data/testcase.xls')#第二步根据名字找某个表每个excel里有Sheet1Sheet2等worksheet=workbook.sheet_by_name('Sheet1')print(worksheet)#Sheet0:<Sheet1......
  • RequestFacade对象获取请求头时忽略大小写
    可以获取到,所以是忽略大小写的,具体可以查看tomcat......
  • 医学案例|配对wilcoxon符号秩检验
    一、案例介绍某单位想要研究某保健品对小鼠是否具有抗疲劳作用,将同种属的小鼠按性别与年龄相同、体重相近配成对子,共14对,并将每对中的两只小鼠随机分配到两个不同的保健食品剂量组,测量小鼠负重5%体重时的游泳时间(min),试比较不同剂量组的小鼠负重游泳时间有无差别。二、问题分析想......