打开浏览器_.Net Core 打开浏览器并转到指定网址

4f844af1ec03e7f93ab6619eb4010ee4.png

WPF 项目迁移到.Net Core中时居然出了一堆问题...(很无语)

今天在使用的时候居然发现Process.Start居然打不开Url链接了? 报 找不到指定文件 的异常?!

一、bug重现

首先以.Net Core 3.1框架 中一个Console项目 打开百度为例:

980a35335dda7ecbf19330ecead91fa6.png

运行然后你就会得到:

纳闷的是,这种方法打开Url在.Net Framework中是没问题的..

二、解决方法

方案一:使用windows系统自带的资源管理器来打开Url

Process.Start("explorer", "https://www.baidu.com");

你就可以得到一个浏览器窗口,打开着百度网页..

但是如果你的Url复杂一点的话,例如打开百度搜索what

Process.Start("explorer", "https://www.baidu.com/s?wd=what");
explorer表示不干,并直接给你抛了个文件管理器窗口所以这个方法只可以用于打开简单的URL...方案二:使用cmd中的start命令 可以打开任意形式的URL
string url = "https://www.baidu.com/s?wd=what";Process p = new Process();p.StartInfo.FileName = "cmd.exe";p.StartInfo.UseShellExecute = false;    //不使用shell启动p.StartInfo.RedirectStandardInput = true;//喊cmd接受标准输入p.StartInfo.RedirectStandardOutput = false;//不想听cmd讲话所以不要他输出p.StartInfo.RedirectStandardError = true;//重定向标准错误输出p.StartInfo.CreateNoWindow = true;//不显示窗口p.Start();//向cmd窗口发送输入信息 后面的&exit告诉cmd运行好之后就退出p.StandardInput.WriteLine("start "+url + "&exit");p.StandardInput.AutoFlush = true;p.WaitForExit();//等待程序执行完退出进程p.Close();

以上的问题我只在Windows平台上找到过,不知Linux和OSX有没有...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值