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