我正在尝试按照谷歌乃至MSDN编写的简单方法打开网址。但由于未知原因,我得到如下例外:
这是我的代码:
private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
ProcessStartInfo sInfo = new ProcessStartInfo("http://github.com/tbergeron/todoTxt");
Process.Start(sInfo);
}
知道它失败的原因吗?
非常感谢!
答案 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");