У меня есть следующий код для открытия URL в браузере по умолчанию:
string url;
//...
Process.Start(url);
Но это не удастся и выдает Win32Exception
с некоторым URL, например:
https://tw.news.yahoo.com/%E6%95%B8%E4%BD%8D%E8%BA%AB%E5%88%86%E8%AD%89%E6%93%AC9%E6%9C%88%E6%8F%90%E6%A8%A3%E5%BC%B5-%E5%BE%90%
Трассировка стека выглядит так:
System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified.
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(String fileName)
at MyApp.GoURL(String url)
Я переключаю глухие браузеры с Firefox на Chrome, Edge, Brave, ... и т. Д.
И я попробовал некоторые обходные пути в этой проблеме с сетью ,
Process.Start(
new ProcessStartInfo("cmd", $"/c start {url}")
{ CreateNoWindow = true });
или
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = url,
UseShellExecute = true
};
Process.Start(psi);
но все равно не повезло, я не могу открыть браузер по умолчанию. Сообщение об ошибке по-прежнему The system cannot find the file specified.
Существует несколько решений , открывающих Internet Explorer, но они не соответствуют моим спецификациям.
Как я могу открыть такой URL в любом браузере по умолчанию?