Process.Start, чтобы открыть URL, получая исключение? - PullRequest
4 голосов
/ 08 октября 2011

Я пытаюсь открыть URL, следуя простому методу, написанному на всем протяжении Google и даже MSDN.Но по неизвестным причинам я получаю исключение следующим образом:

Exception

Вот мой код:

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

Есть идеи, почему это не удается?

Большое спасибо!

Ответы [ 4 ]

8 голосов
/ 11 ноября 2018

У меня была похожая проблема при попытке .NET Core и получения Win32Exception, я справился с этим так:

var ps = new ProcessStartInfo("http://myurl")
{ 
    UseShellExecute = true, 
    Verb = "open" 
};
Process.Start(ps);
8 голосов
/ 11 декабря 2013

Это, по-видимому, машинно-специфическое поведение (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 голос
/ 08 октября 2011

Вы ищете string перегрузку Process.Start():

Process.Start("http://github.com/tbergeron/todoTxt");
0 голосов
/ 08 октября 2011

Бросьте старт перед ним, если вы хотите запустить в браузере по умолчанию:

new ProcessStartInfo("start http://github.com/tbergeron/todoTxt");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...