Process.Start(url), разбитый на Windows 8/Chrome, есть альтернативы?

Чтобы открыть URL-адрес из приложения .NET, многие сайты (qaru.site/info/60062/...) приводят пример:

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

В Windows 8 это работает, если Internet Explorer является браузером по умолчанию. Однако, если Google Chrome по умолчанию, он терпит неудачу с:

Unhandled Exception: System.ComponentModel.Win32Exception: Class not registered

Означает ли это, что этот метод больше не является правильным способом открыть URL-адрес в Windows? Какие существуют альтернативы? Безопаснее ли просто запускать Internet Explorer?

Ответ 2

Ответ Armin - это тот, который я использовал, и он работал хорошо.

Я просто хочу добавить, что я получаю исключение класса без регистрации, когда я запускаю процесс из программы, которая работает с повышенными разрешениями. Это похоже на новое поведение в Windows 8.

Ответ 3

Я пробовал много решений, но поскольку я в проекте UI (wpf или winform), я закончил использование встроенного элемента управления браузером. Вызов навигации, установка URL-адреса, затем таргетинг на "_blank" запускает окно внешнего браузера.

_webBrowser.Navigate(uri, "_blank");

Надеюсь, это поможет. DC

Ответ 4

Используйте Launcher для открытия URL-адресов.

Пример:

await Launcher.LaunchUriAsync(new Uri("www.google.com"));