Process.Start打开一个URL,得到一个Exception?

时间:2011-10-07 22:23:40

标签: c# .net winforms

我正在尝试按照谷歌乃至MSDN编写的简单方法打开网址。但由于未知原因,我得到如下例外:

Exception

这是我的代码:

private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    ProcessStartInfo sInfo = new ProcessStartInfo("http://github.com/tbergeron/todoTxt");
    Process.Start(sInfo);
}

知道它失败的原因吗?

非常感谢!

4 个答案:

答案 0 :(得分:8)

这显然是特定于机器的行为(http://devtoolshed.com/content/launch-url-default-browser-using-c)。

链接文章建议使用Process.Start("http://myurl"),但要抓住Win32Exception和 回到Process.Start("IExplore.exe", "http://myurl")

try
{
  Process.Start("http://myurl");
}
catch (Win32Exception)
{
  Process.Start("IExplore.exe", "http://myurl");
}
可悲的是,在尝试了几乎所有的东西之后,这是我在机器上做的最好的事情。

答案 1 :(得分:7)

我在使用.NET Core尝试并获得Win32Exception时遇到类似的问题,我这样处理:

var ps = new ProcessStartInfo("http://myurl")
{ 
    UseShellExecute = true, 
    Verb = "open" 
};
Process.Start(ps);

答案 2 :(得分:1)

您正在寻找string的{​​{1}}重载:

Process.Start()

答案 3 :(得分:-1)

如果要在默认浏览器中启动,请在它前面开始:

new ProcessStartInfo("start http://github.com/tbergeron/todoTxt");