在很多客户端程序中我们都需要调用浏览器打开网页,这里分享一个可以在我winform程序调用浏览器的方法,测试通过了。
看演示图
1.调用谷歌浏览器打开网页(打开百度)
2.调用IE打开页面(打开百度)
3.调用用户默认设置的浏览器打开百度页面
测试都是通过的,有些电脑因为没有安装IE浏览器特别是一些Ghost系统,导致IE打开不成功,这里我建议大家可以调用谷歌浏览器,因为比较这是现在最主流的浏览器之一,谷歌没有就打开系统默认的,实在不行就打开IE。
项目测试中,还真有一些客户的电脑用IE打不开,最后安装谷歌就可以了。
最后我们加上源码
/// <summary> /// 调用系统浏览器打开网页 /// http://m.jb51.net/article/44622.htm /// </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 var openPath = appPath != null ? "chrome.exe" : "EXPLORER.EXE"; Process.Start(openPath, 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) { LogUtil.WriteException(ex); // 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) { // 打开下载链接,从微软官网下载 OpenBrowserUrl("http://windows.microsoft.com/zh-cn/internet-explorer/download-ie"); } } } } catch (Exception exception) { LogUtil.WriteException(exception); } } } /// <summary> /// 打开系统默认浏览器(用户自己设置了默认浏览器) /// </summary> /// <param name="url"></param> public static void OpenDefaultBrowserUrl(string url) { try { Process.Start("EXPLORER.EXE", url); } catch { OpenIe(url); } }
如果对你有帮助希望你可以喜欢,点个赞。