using System;

using System.Diagnostics;

using System.IO;

using System.Windows.Forms;

using Microsoft.Win32;

namespace WindowsFormsApplication1

{

public class BrowserHelper

{

/// <summary>

/// 调用系统浏览器打开网页

/// http://m.jb51.net/article/44622.htm

/// http://www.2cto.com/kf/201412/365633.html

/// </summary>

/// <param name="url">打开网页的链接</param>

public static void OpenBrowserUrl(string url)

{

try

{

// 64位注册表路径

var openKey = @"SOFTWARE\Wow6432Node\Google\Chrome";

if (IntPtr.Size == 4)

{

// 32位注册表路径

openKey = @"SOFTWARE\Google\Chrome";

}

RegistryKey appPath = Registry.LocalMachine.OpenSubKey(openKey);

// 谷歌浏览器就用谷歌打开,没找到就用系统默认的浏览器

// 谷歌卸载了,注册表还没有清空,程序会返回一个"系统找不到指定的文件。"的bug

if (appPath != null)

{

var result = Process.Start("chrome.exe", url);

if (result == null)

{

OpenIe(url);

}

}

else

{

var result = Process.Start("chrome.exe", url);

if (result == null)

{

OpenDefaultBrowserUrl(url);

}

}

}

catch

{

// 出错调用用户默认设置的浏览器,还不行就调用IE

OpenDefaultBrowserUrl(url);

}

}

/// <summary>

/// 用IE打开浏览器

/// </summary>

/// <param name="url"></param>

public static void OpenIe(string url)

{

try

{

Process.Start("iexplore.exe", url);

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

// 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);

}

else

{

if (MessageBox.Show(@"系统未安装IE浏览器,是否下载安装?", null, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)

{

// 打开下载链接,从微软官网下载

OpenDefaultBrowserUrl("http://windows.microsoft.com/zh-cn/internet-explorer/download-ie");

}

}

}

}

catch (Exception exception)

{

MessageBox.Show(exception.Message);

}

}

}

/// <summary>

/// 打开系统默认浏览器(用户自己设置了默认浏览器)

/// </summary>

/// <param name="url"></param>

public static void OpenDefaultBrowserUrl(string url)

{

try

{

// 方法1

//从注册表中读取默认浏览器可执行文件路径

RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"http\shell\open\command\");

if (key != null)

{

string s = key.GetValue("").ToString();

//s就是你的默认浏览器,不过后面带了参数,把它截去,不过需要注意的是:不同的浏览器后面的参数不一样!

//"D:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -- "%1"

var lastIndex = s.IndexOf(".exe", StringComparison.Ordinal);

if (lastIndex == -1)

{

lastIndex = s.IndexOf(".EXE", StringComparison.Ordinal);

}

var path = s.Substring(1, lastIndex + 3);

var result = Process.Start(path, url);

if (result == null)

{

// 方法2

// 调用系统默认的浏览器

var result1 = Process.Start("explorer.exe", url);

if (result1 == null)

{

// 方法3

Process.Start(url);

}

}

}

else

{

// 方法2

// 调用系统默认的浏览器

var result1 = Process.Start("explorer.exe", url);

if (result1 == null)

{

// 方法3

Process.Start(url);

}

}

}

catch

{

OpenIe(url);

}

}

/// <summary>

/// 火狐浏览器打开网页

/// </summary>

/// <param name="url"></param>

public static void OpenFireFox(string url)

{

try

{

// 64位注册表路径

var openKey = @"SOFTWARE\Wow6432Node\Mozilla\Mozilla Firefox";

if (IntPtr.Size == 4)

{

// 32位注册表路径

openKey = @"SOFTWARE\Mozilla\Mozilla Firefox";

}

RegistryKey appPath = Registry.LocalMachine.OpenSubKey(openKey);

if (appPath != null)

{

var result = Process.Start("firefox.exe", url);

if (result == null)

{

OpenIe(url);

}

}

else

{

var result = Process.Start("firefox.exe", url);

if (result == null)

{

OpenDefaultBrowserUrl(url);

}

}

}

catch

{

OpenDefaultBrowserUrl(url);

}

}

}

}

c# 调用浏览器打开页面相关推荐

  1. java openurl不弹出新页面_Java调用浏览器打开指定页面的5种方法(最全)

    package com.xbz; import java.awt.*; import java.lang.reflect.Method; import java.net.URI; import jav ...

  2. Java调用浏览器打开指定页面的5种方法(最全)

    package com.xbz;import java.awt.*; import java.lang.reflect.Method; import java.net.URI; import java ...

  3. java调用指定浏览器_Java调用浏览器打开网页完整实例

    本文实例讲述了java调用浏览器打开网页的方法.分享给大家供大家参考.具体实现方法如下: package com.yifang.demo; import java.io.file; public cl ...

  4. java调用浏览器_Java调用浏览器打开网页实例完整版

    Java调用浏览器打开网页实例完整版 引导语:如何用Java调用浏览器打开网页呢?以下是百分网小编分享给大家的`Java调用浏览器打开网页实例完整版,欢迎阅读! package com.yifang. ...

  5. java打开浏览器_Java调用浏览器打开网页完整实例

    这篇文章主要介绍了Java调用浏览器打开网页的方法,以完整实例形式分析了java打开网页的相关技巧,需要的朋友可以参考下 本文实例讲述了Java调用浏览器打开网页的方法.分享给大家供大家参考.具体实现 ...

  6. 解决Google浏览器打开页面速度太慢问题

    看别人google打开的网页速度飞快,而自己的却慢的着急,所以在网上找了半天资料+自己摸索了一下午,终于解决了Google浏览器打开页面速度太慢的问题,下面是我自己遇到的一些问题,希望对大家有所帮助. ...

  7. C# 调用浏览器打开pdf || 设置焦点

    1. 调用浏览器打开pdf: 1) 第一种:使用固定的浏览器打开pdf System.Diagnostics.Process.Start("msedge.exe", @" ...

  8. idea 谷歌浏览器配置 通过浏览器打开页面 open in brower

    谷歌浏览器配置 如何设置idea打开的chrome浏览器有用户数据 1)IntelliJIdea2019.2\config\chrome-user-data清空 2)将谷歌浏览器的配置文件 复制到上面 ...

  9. 微信中打开被链接提示浏览器打开页面下载APP的实现方法与隐藏投诉举报按钮的实现演示

    微信营销是网络经济时代企业或个人营销模式的一种.是伴随着微信的火热而兴起的一种网络营销方式.但是也正因为如此,微信官方的屏蔽封杀域名的规范的也越来越严格.商家与微信之间进行着微信防封防屏蔽和封杀较量, ...

  10. 在Android中调用浏览器打开网页方式

    在安卓代码中我们有时需要调用浏览器来打开相应的网页,此时可以有以下几种实现方式: 一.调用浏览器实现 调用默认浏览器 1 2 3 4 5 Intent intent = new Intent();   ...

最新文章

  1. python3+selenium3登录封装与调用(把登陆做成公共模块)
  2. Tensorflow学习笔记2:About Session, Graph, Operation and Tensor
  3. 数据数组赋值_嵌入式-数组赋值
  4. maven 配置篇 之pom.xml
  5. 开源数据库Neo4j获8000万美元E轮融资,One Peak Partners、摩根士丹利领投
  6. PCM复用设备和PDH设备的区别介绍
  7. delphi ---ttoolbar,ttoolbutton
  8. 深入浅出linux驱动,Linux Kernel 字符驱动的深入浅出讲解
  9. 【转】解决Windows Media Player媒体库无法添加文件
  10. ftp/sftp定时自动上传文件脚本(CentOS)
  11. 声纹识别demo_BirdSongDemo 一款基于鸟叫声识别的通用鸟类识别软件LilyBirdSong 联合开发网 - pudn.com...
  12. Win10任务栏卡死,无响应,点不动解决方法集锦
  13. 从EDN上看的文章 如何提高手机的待机时长
  14. k8s篇-POD资源管理
  15. Axure8有效注册码
  16. 报错:Unhandled exception
  17. tpc1061ti使用说明_TPC1061TiMCGS昆仑通态人机界面触摸屏HMI
  18. java缺陷管理系统_简述:一款优秀的缺陷管理系统有哪些功能特点!
  19. iscsi initiator 安装配置
  20. 2021 An Updated Comparison of Four Low Earth Orbit Satellite Constellation Systems to Provide Global

热门文章

  1. Ubuntu 18安装腾达u12 无线网卡驱动
  2. STM32F207时钟系统解析
  3. CAN和CAN FD
  4. Github emoji 表情包大全
  5. Web敏感目录快速扫描软件 wwwscan
  6. C# 隐藏最大化、最小化和关闭三个按钮
  7. 【超图+CESIUM】【基础API使用示例】28、超图|CESIUM -【坐标转换】经纬度转世界坐标
  8. 一文读懂DH密钥交换算法
  9. 一个时代的剪影-----汉 (作者:金立扬)
  10. echarts 力导向图