如何在C#中默认浏览器中打开

我正在devise一个小型的C#应用​​程序,里面有一个网页浏览器。 我目前在我的计算机上有我所有的默认设置,说谷歌浏览器是我的默认浏览器,但是当我点击我的应用程序中打开一个新窗口中的链接,它会打开Internet Explorer。 有没有办法使这些链接在默认浏览器中打开呢? 或者我的电脑有问题吗?

我的问题是,我有一个webbrowser在应用程序,所以说你去谷歌和键入“堆栈溢出”,并右键单击第一个链接,然后单击“在新窗口中打开”它在IE中而不是Chrome打开。 这是我编码不正确,或者有一个设置不正确,在我的电脑上

===编辑===

这真的很烦人 我已经知道,浏览器是IE浏览器,但我以前工作得很好。 当我点击一个链接它在铬打开。 我当时正在使用sharp开发来制作应用程序,因为我无法启动c#express。 我做了一个新的Windows安装,因为我在我的应用程序不太远,我决定重新开始,现在我有这个问题。 这就是为什么我不确定它是否是我的电脑。 为什么IE会在单击链接时启动整个浏览器,而不是在默认浏览器中打开新链接?

你可以写

System.Diagnostics.Process.Start("http://google.com"); 

编辑WebBrowser控件是IE的embedded式副本。
因此,它里面的任何链接都将在IE中打开。

要改变这种行为,你可以处理Navigating事件。

 public void gotoSite(string url) { System.Diagnostics.Process.Start(url); } 

那应该解决你的问题

你有没有尝试Process在这里提到: http : //msdn.microsoft.com/de-de/library/system.diagnostics.process.aspx ?

你可以使用

 Process myProcess = new Process(); try { // true is the default, but it is important not to set it to false myProcess.StartInfo.UseShellExecute = true; myProcess.StartInfo.FileName = "http://some.domain.tld/bla"; myProcess.Start(); } catch (Exception e) { Console.WriteLine(e.Message); } 

看看GeckoFX控件 。

GeckoFX是一个开源组件,可以很容易地将Mozilla Gecko(Firefox)embedded到任何.NET Windows Forms应用程序中。 写在干净,完全评论的C#中,GeckoFX是默认的基于Internet Explorer的WebBrowser控件的完美替代品。

对于那些在dotnet核心中发现这个问题的人。 我在这里find了解决办法

码:

 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; } } } 

这为我打开了默认值:

 System.Diagnostics.Process.Start(e.LinkText.ToString()); 

尝试这个,老派的方式;)

 public static void openit(string x) { System.Diagnostics.Process.Start("cmd", "/C start" + " " + x); } 

使用:openit(“www.google.com”);

在UWP中:

 await Launcher.LaunchUriAsync(new Uri("http://google.com"));