乐趣区

关于javascript:C获取本地浏览器C查找本地浏览器查询谷歌浏览器依次打开各种浏览器

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,
        }

    }
}
退出移动版