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
{
///
/// 谷歌浏览器注册表地址
///
private const string ChromeAppKey = @"\Software\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe";
///
/// 火狐浏览器注册表地址
///
private const string FirefoxAppKey = @"\Software\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe";
///
/// Edge浏览器注册表地址
///
private const string MSEdgeAppKey = @"\Software\Microsoft\Windows\CurrentVersion\App Paths\msedge.exe";
///
/// 360极速浏览器注册表地址
///
private const string Chrome360AppKey = @"\Software\Microsoft\Windows\CurrentVersion\App Paths\360chrome.exe";
///
/// 通过默认浏览器打开Url
///
/// Url地址
private static void OpenDefaultBrowserUrl(string url)
{
Process.Start(url);
}
///
/// 通过IE浏览器打开Url
///
/// Url地址
private static void OpenIeBrowserUrl(string url)
{
Process.Start("iexplore.exe", url);
}
///
/// 打开浏览器,根据谷歌--Edge--火狐--360--IE
///
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 { }
}
}
/// ·1
/// 通过谷歌浏览器打开Url
///
/// Url地址
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);
}
}
///
/// 通过火狐浏览器打开Url
///
/// Url地址
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);
}
}
///
/// 通过Edge浏览器打开Url
///
/// Url地址
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);
}
}
///
/// 通过360极速浏览器打开Url
///
/// Url地址
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);
}
}
///
/// 指定浏览器地址打开Url
///
/// 指定的浏览器地址
/// Url地址
public static void OpenBrowserUrl(string fileName, string url)
{
Process.Start(fileName, url);
}
///
/// 通过浏览器打开Url
///
/// Url地址
/// 指定打开的浏览器类型
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;
}
}
}
///
/// 浏览器类型
///
public enum BrowserType
{
///
/// 默认浏览器
///
Default = 0,
///
/// IE浏览器
///
IE = 1,
///
/// Google浏览器
///
Google = 2,
///
/// 火狐
///
Firefox = 3,
///
/// Microsoft Edge
///
Edge = 4,
///
/// 360极速浏览器
///
Chrome360 = 5,
}
}
}