c# 调用浏览器打开页面
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# 调用浏览器打开页面相关推荐
- java openurl不弹出新页面_Java调用浏览器打开指定页面的5种方法(最全)
package com.xbz; import java.awt.*; import java.lang.reflect.Method; import java.net.URI; import jav ...
- Java调用浏览器打开指定页面的5种方法(最全)
package com.xbz;import java.awt.*; import java.lang.reflect.Method; import java.net.URI; import java ...
- java调用指定浏览器_Java调用浏览器打开网页完整实例
本文实例讲述了java调用浏览器打开网页的方法.分享给大家供大家参考.具体实现方法如下: package com.yifang.demo; import java.io.file; public cl ...
- java调用浏览器_Java调用浏览器打开网页实例完整版
Java调用浏览器打开网页实例完整版 引导语:如何用Java调用浏览器打开网页呢?以下是百分网小编分享给大家的`Java调用浏览器打开网页实例完整版,欢迎阅读! package com.yifang. ...
- java打开浏览器_Java调用浏览器打开网页完整实例
这篇文章主要介绍了Java调用浏览器打开网页的方法,以完整实例形式分析了java打开网页的相关技巧,需要的朋友可以参考下 本文实例讲述了Java调用浏览器打开网页的方法.分享给大家供大家参考.具体实现 ...
- 解决Google浏览器打开页面速度太慢问题
看别人google打开的网页速度飞快,而自己的却慢的着急,所以在网上找了半天资料+自己摸索了一下午,终于解决了Google浏览器打开页面速度太慢的问题,下面是我自己遇到的一些问题,希望对大家有所帮助. ...
- C# 调用浏览器打开pdf || 设置焦点
1. 调用浏览器打开pdf: 1) 第一种:使用固定的浏览器打开pdf System.Diagnostics.Process.Start("msedge.exe", @" ...
- idea 谷歌浏览器配置 通过浏览器打开页面 open in brower
谷歌浏览器配置 如何设置idea打开的chrome浏览器有用户数据 1)IntelliJIdea2019.2\config\chrome-user-data清空 2)将谷歌浏览器的配置文件 复制到上面 ...
- 微信中打开被链接提示浏览器打开页面下载APP的实现方法与隐藏投诉举报按钮的实现演示
微信营销是网络经济时代企业或个人营销模式的一种.是伴随着微信的火热而兴起的一种网络营销方式.但是也正因为如此,微信官方的屏蔽封杀域名的规范的也越来越严格.商家与微信之间进行着微信防封防屏蔽和封杀较量, ...
- 在Android中调用浏览器打开网页方式
在安卓代码中我们有时需要调用浏览器来打开相应的网页,此时可以有以下几种实现方式: 一.调用浏览器实现 调用默认浏览器 1 2 3 4 5 Intent intent = new Intent(); ...
最新文章
- python3+selenium3登录封装与调用(把登陆做成公共模块)
- Tensorflow学习笔记2:About Session, Graph, Operation and Tensor
- 数据数组赋值_嵌入式-数组赋值
- maven 配置篇 之pom.xml
- 开源数据库Neo4j获8000万美元E轮融资,One Peak Partners、摩根士丹利领投
- PCM复用设备和PDH设备的区别介绍
- delphi ---ttoolbar,ttoolbutton
- 深入浅出linux驱动,Linux Kernel 字符驱动的深入浅出讲解
- 【转】解决Windows Media Player媒体库无法添加文件
- ftp/sftp定时自动上传文件脚本(CentOS)
- 声纹识别demo_BirdSongDemo 一款基于鸟叫声识别的通用鸟类识别软件LilyBirdSong 联合开发网 - pudn.com...
- Win10任务栏卡死,无响应,点不动解决方法集锦
- 从EDN上看的文章 如何提高手机的待机时长
- k8s篇-POD资源管理
- Axure8有效注册码
- 报错:Unhandled exception
- tpc1061ti使用说明_TPC1061TiMCGS昆仑通态人机界面触摸屏HMI
- java缺陷管理系统_简述:一款优秀的缺陷管理系统有哪些功能特点!
- iscsi initiator 安装配置
- 2021 An Updated Comparison of Four Low Earth Orbit Satellite Constellation Systems to Provide Global