我正在设计一个小的C#应用程序,里面有一个网页浏览器。目前我电脑上所有的默认设置都是google chrome是我的默认浏览器,然而当我点击应用程序中的一个链接以在新窗口中打开时,它会打开internet explorer。有没有办法让这些链接在默认浏览器中打开?或者是我的电脑出了什么问题?
我的问题是,我的应用程序中有一个网页浏览器,所以假设你去谷歌输入“栈溢出”,然后右键单击第一个链接,然后单击“在新窗口中打开”,它将在IE中打开,而不是在Chrome中打开。这是不是我的代码不正确,或者我的计算机上的设置不正确
===EDIT===
这真的很烦人。我已经知道浏览器是IE,但我之前已经让它工作得很好。当我点击一个链接时,它会在chrome中打开。我当时正在使用sharp develop开发应用程序,因为我无法启动c# express。我做了一个全新的windows安装,由于我的应用程序还没有走得太远,我决定从头开始,现在我遇到了这个问题。这就是为什么我不确定这是不是我的电脑。为什么IE会在点击链接时启动整个浏览器,而不是简单地在默认浏览器中打开新链接?
发布于 2017-04-05 21:20:56
对于那些在dotnet核心中发现这个问题的人。我找到了一个解决方案here
代码:
private void OpenUrl(string url)
{
try
{
Process.Start(url);
}
catch
{
// hack because of this: https://github.com/dotnet/corefx/issues/10361
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
url = url.Replace("&", "^&");
Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true });
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
Process.Start("xdg-open", url);
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
Process.Start("open", url);
}
else
{
throw;
}
}
}
发布于 2013-04-25 10:04:57
public static void GoToSite(string url)
{
System.Diagnostics.Process.Start(url);
}
这应该能解决你的问题
发布于 2020-05-06 15:35:55
在研究了很多之后,我觉得大多数给出的答案都不适用于dotnet核心。1.System.Diagnostics.Process.Start("http://google.com")
;--不能与dotnet核心一起使用
2.它可以工作,但如果默认浏览器是chrome,它将阻止新窗口的打开
myProcess.StartInfo.UseShellExecute = true;
myProcess.StartInfo.FileName = "http://some.domain.tld/bla";
myProcess.Start();
下面是最简单的,适用于所有场景。
Process.Start("explorer", url);
https://stackoverflow.com/questions/4580263
复制相似问题