using Microsoft.Win32;using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading.Tasks;namespace usdoc.Browser{    internal class bMain    {        public static class BrowserHelper        {            /// <summary>            /// 谷歌浏览器注册表地址            /// </summary>            private const string ChromeAppKey = @"\Software\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe";            /// <summary>            /// 火狐浏览器注册表地址            /// </summary>            private const string FirefoxAppKey = @"\Software\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe";            /// <summary>            /// Edge浏览器注册表地址            /// </summary>            private const string MSEdgeAppKey = @"\Software\Microsoft\Windows\CurrentVersion\App Paths\msedge.exe";            /// <summary>            /// 360极速浏览器注册表地址            /// </summary>            private const string Chrome360AppKey = @"\Software\Microsoft\Windows\CurrentVersion\App Paths\360chrome.exe";            /// <summary>            /// 通过默认浏览器关上Url            /// </summary>            /// <param name="url">Url地址</param>            private static void OpenDefaultBrowserUrl(string url)            {                Process.Start(url);            }            /// <summary>            /// 通过IE浏览器关上Url            /// </summary>            /// <param name="url">Url地址</param>            private static void OpenIeBrowserUrl(string url)            {                Process.Start("iexplore.exe", url);            }            /// <summary>            /// 关上浏览器,依据谷歌--Edge--火狐--360--IE            /// </summary>            public static void OpenBrowserByOrder(string url)            {                try                {                    //通过注册表找到谷歌浏览器装置门路                    string chromeAppFileName = (string)(Registry.GetValue("HKEY_LOCAL_MACHINE" + ChromeAppKey, "", null) ?? Registry.GetValue("HKEY_CURRENT_USER" + ChromeAppKey, "", null));                    // 如果未找到谷歌浏览器则应用默认浏览器关上                    if (!String.IsNullOrWhiteSpace(chromeAppFileName))                    {                        // 关上谷歌浏览器                        Process.Start(chromeAppFileName, url);                        return;                    }                    else                    {                        // 通过注册表找到Edge浏览器装置门路                        string msedgeAppFileName = (string)(Registry.GetValue("HKEY_LOCAL_MACHINE" + MSEdgeAppKey, "", null) ?? Registry.GetValue("HKEY_CURRENT_USER" + MSEdgeAppKey, "", null));                        // 如果未找到Edge浏览器则应用默认浏览器关上                        if (!String.IsNullOrWhiteSpace(msedgeAppFileName))                        {                            //关上Edge浏览器                            Process.Start(msedgeAppFileName, url);                            return;                        }                        else                        {                            // 通过注册表找到火狐浏览器装置门路                            string firefoxAppFileName = (string)(Registry.GetValue("HKEY_LOCAL_MACHINE" + FirefoxAppKey, "", null) ?? Registry.GetValue("HKEY_CURRENT_USER" + FirefoxAppKey, "", null));                            // 如果未找到火狐浏览器则应用默认浏览器关上                            if (!String.IsNullOrWhiteSpace(firefoxAppFileName))                            {                                // 关上火狐浏览器                                Process.Start(firefoxAppFileName, url);                                return;                            }                            else                            {                                // 通过注册表找到360极速浏览器装置门路                                string chrome360AppFileName = (string)(Registry.GetValue("HKEY_LOCAL_MACHINE" + Chrome360AppKey, "", null) ?? Registry.GetValue("HKEY_CURRENT_USER" + Chrome360AppKey, "", null));                                // 如果未找到360极速浏览器则应用默认浏览器关上                                if (!String.IsNullOrWhiteSpace(chrome360AppFileName))                                {                                    // 关上360极速浏览器浏览器                                    Process.Start(chrome360AppFileName, url);                                    return;                                }                                else                                {                                    OpenDefaultBrowserUrl(url);                                }                            }                        }                    }                }                catch                {                    //如果产生异样则应用默认浏览器关上                    try                    {                        OpenDefaultBrowserUrl(url);                    }                    catch { }                }            }            /// <summary>·1            /// 通过谷歌浏览器关上Url            /// </summary>            /// <param name="url">Url地址</param>            private static void OpenGoogleBrowserUrl(string url)            {                try                {                    // 通过注册表找到谷歌浏览器装置门路                    string chromeAppFileName = (string)(Registry.GetValue("HKEY_LOCAL_MACHINE" + ChromeAppKey, "", null) ?? Registry.GetValue("HKEY_CURRENT_USER" + ChromeAppKey, "", null));                    // 如果未找到谷歌浏览器则应用默认浏览器关上                    if (String.IsNullOrWhiteSpace(chromeAppFileName))                    {                        OpenDefaultBrowserUrl(url);                        return;                    }                    // 关上谷歌浏览器                    Process.Start(chromeAppFileName, url);                }                catch                {                    // 如果产生异样则应用默认浏览器关上                    OpenDefaultBrowserUrl(url);                }            }            /// <summary>            /// 通过火狐浏览器关上Url            /// </summary>            /// <param name="url">Url地址</param>            private static void OpenFirefoxBrowserUrl(string url)            {                try                {                    // 通过注册表找到火狐浏览器装置门路                    string firefoxAppFileName = (string)(Registry.GetValue("HKEY_LOCAL_MACHINE" + FirefoxAppKey, "", null) ?? Registry.GetValue("HKEY_CURRENT_USER" + FirefoxAppKey, "", null));                    // 如果未找到火狐浏览器则应用默认浏览器关上                    if (String.IsNullOrWhiteSpace(firefoxAppFileName))                    {                        OpenDefaultBrowserUrl(url);                        return;                    }                    // 关上火狐浏览器                    Process.Start(firefoxAppFileName, url);                }                catch                {                    // 如果产生异样则应用默认浏览器关上                    OpenDefaultBrowserUrl(url);                }            }            /// <summary>            /// 通过Edge浏览器关上Url            /// </summary>            /// <param name="url">Url地址</param>            private static void OpenMSEdgeBrowserUrl(string url)            {                try                {                    // 通过注册表找到Edge浏览器装置门路                    string msedgeAppFileName = (string)(Registry.GetValue("HKEY_LOCAL_MACHINE" + MSEdgeAppKey, "", null) ?? Registry.GetValue("HKEY_CURRENT_USER" + MSEdgeAppKey, "", null));                    // 如果未找到Edge浏览器则应用默认浏览器关上                    if (String.IsNullOrWhiteSpace(msedgeAppFileName))                    {                        OpenDefaultBrowserUrl(url);                        return;                    }                    // 关上Edge浏览器                    Process.Start(msedgeAppFileName, url);                }                catch                {                    // 如果产生异样则应用默认浏览器关上                    OpenDefaultBrowserUrl(url);                }            }            /// <summary>            /// 通过360极速浏览器关上Url            /// </summary>            /// <param name="url">Url地址</param>            private static void OpenChrome360BrowserUrl(string url)            {                try                {                    // 通过注册表找到360极速浏览器装置门路                    string chrome360AppFileName = (string)(Registry.GetValue("HKEY_LOCAL_MACHINE" + Chrome360AppKey, "", null) ?? Registry.GetValue("HKEY_CURRENT_USER" + Chrome360AppKey, "", null));                    // 如果未找到360极速浏览器则应用默认浏览器关上                    if (String.IsNullOrWhiteSpace(chrome360AppFileName))                    {                        OpenDefaultBrowserUrl(url);                        return;                    }                    // 关上360极速浏览器浏览器                    Process.Start(chrome360AppFileName, url);                }                catch                {                    // 如果产生异样则应用默认浏览器关上                    OpenDefaultBrowserUrl(url);                }            }            /// <summary>            /// 指定浏览器地址关上Url            /// </summary>            /// <param name="fileName">指定的浏览器地址</param>            /// <param name="url">Url地址</param>            public static void OpenBrowserUrl(string fileName, string url)            {                Process.Start(fileName, url);            }            /// <summary>            /// 通过浏览器关上Url            /// </summary>            /// <param name="url">Url地址</param>            /// <param name="type">指定关上的浏览器类型</param>            public static void OpenBrowserUrl(string url, BrowserType type = BrowserType.Default)            {                switch (type)                {                    case BrowserType.Default:                        OpenDefaultBrowserUrl(url);                        break;                    case BrowserType.IE:                        OpenIeBrowserUrl(url);                        break;                    case BrowserType.Google:                        OpenGoogleBrowserUrl(url);                        break;                    case BrowserType.Firefox:                        OpenFirefoxBrowserUrl(url);                        break;                    case BrowserType.Edge:                        OpenMSEdgeBrowserUrl(url);                        break;                    case BrowserType.Chrome360:                        OpenChrome360BrowserUrl(url);                        break;                    default:                        OpenDefaultBrowserUrl(url);                        break;                }            }        }        /// <summary>        /// 浏览器类型        /// </summary>        public enum BrowserType        {            /// <summary>            /// 默认浏览器            /// </summary>            Default = 0,            /// <summary>            /// IE浏览器            /// </summary>            IE = 1,            /// <summary>            /// Google浏览器            /// </summary>            Google = 2,            /// <summary>            /// 火狐            /// </summary>            Firefox = 3,            /// <summary>            /// Microsoft Edge            /// </summary>            Edge = 4,            /// <summary>            /// 360极速浏览器            /// </summary>            Chrome360 = 5,        }    }}