Как открыть браузер по умолчанию в C #

Я разрабатываю небольшое приложение C #, и в нем есть веб-браузер. В настоящее время у меня есть все мои настройки по умолчанию на моем компьютере. Google Chrome – мой браузер по умолчанию, но когда я нажимаю ссылку в своем приложении для открытия в новом окне, он открывает Internet Explorer. Есть ли способ открыть эти ссылки в браузере по умолчанию? Или что-то не так на моем компьютере?

Моя проблема в том, что у меня есть веб-браузер в приложении, поэтому скажите, что вы заходите в google и введите «переполнение стека» и щелкните правой кнопкой мыши по первой ссылке и нажмите «Открыть в новом окне», которая открывается в IE вместо Chrome. Это что-то, что я неправильно закодировал, или есть некорректная настройка на моем компьютере

=== РЕДАКТИРОВАТЬ ===

Это действительно раздражает. Я уже знаю, что браузер – это IE, но раньше он работал нормально. Когда я нажал ссылку, она открылась в хроме. Я использовал резкое развитие, чтобы сделать приложение в то время, потому что я не мог получить c # express для запуска. Я сделал новые windows, и, поскольку я не был слишком далеко в своем приложении, я решил начать все сначала, и теперь у меня возникает эта проблема. Вот почему я не уверен, что это мой компьютер или нет. Почему IE запускает весь браузер при нажатии ссылки, а не просто открывает новую ссылку в браузере по умолчанию?

Вы можете просто написать

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

EDIT : элемент управления WebBrowser представляет собой встроенную копию IE.
Поэтому любые ссылки внутри него будут открываться в IE.

Чтобы изменить это поведение, вы можете обработать событие Navigating .

 public static void GoToSite(string url) { System.Diagnostics.Process.Start(url); } 

что должно решить вашу проблему

Для тех, кто находит этот вопрос в ядре dotnet. Я нашел решение здесь

Код:

 private void OpenUrl(string url) { try { Process.Start(url); } catch { // hack because of this: https://github.com/dotnet/corefx/issues/10361 if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { url = url.Replace("&", "^&"); Process.Start(new ProcessStartInfo("cmd", $"/c start {url}") { CreateNoWindow = true }); } else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { Process.Start("xdg-open", url); } else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { Process.Start("open", url); } else { throw; } } } 

Вы пытались Process как указано здесь: http://msdn.microsoft.com/de-de/library/system.diagnostics.process.aspx ?

Вы можете использовать

 Process myProcess = new Process(); try { // true is the default, but it is important not to set it to false myProcess.StartInfo.UseShellExecute = true; myProcess.StartInfo.FileName = "http://some.domain.tld/bla"; myProcess.Start(); } catch (Exception e) { Console.WriteLine(e.Message); } 

Взгляните на элемент управления GeckoFX .

GeckoFX – это компонент с открытым исходным кодом, который упрощает внедрение Mozilla Gecko (Firefox) в любое приложение .NET Windows Forms. Написанная в чистом, полностью комментируемом C #, GeckoFX – идеальная замена для стандартного WebBrowser на основе Internet Explorer.

Это открыло мне по умолчанию:

 System.Diagnostics.Process.Start(e.LinkText.ToString()); 

Попробуй это, старый школьный путь;)

 public static void openit(string x) { System.Diagnostics.Process.Start("cmd", "/C start" + " " + x); } 

используя: openit (“www.google.com”);

В UWP:

 await Launcher.LaunchUriAsync(new Uri("http://google.com")); 

Открыть динамически

 string addres= "Print/" + Id + ".htm"; System.Diagnostics.Process.Start(Path.Combine(Environment.CurrentDirectory, addres)); 

обновить реестр с помощью текущей версии проводника
@ “Программное обеспечение \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION”

 public enum BrowserEmulationVersion { Default = 0, Version7 = 7000, Version8 = 8000, Version8Standards = 8888, Version9 = 9000, Version9Standards = 9999, Version10 = 10000, Version10Standards = 10001, Version11 = 11000, Version11Edge = 11001 } key.SetValue(programName, (int)browserEmulationVersion, RegistryValueKind.DWord); 
  • Как загрузить пакеты в R автоматически?
  • Интерфейс с методами по умолчанию vs Абстрактный class в Java 8
  • Можете ли вы вызвать метод по умолчанию родительского интерфейса из интерфейса, который подclassифицирует этот интерфейс?
  • Изменить статус по умолчанию Magento для дублированных продуктов
  • Что означает «default» после объявления функции classа?
  • Force R не использовать экспоненциальную нотацию (например, e + 10)?
  • Существует ли разумный подход к параметрам типа «по умолчанию» в C # Generics?
  • Почему компилятор Scala запрещает перегруженные методы с аргументами по умолчанию?
  • Как изменить каталог данных MySQL?
  • Создание (и доступ) разреженной матрицы с записями NA по умолчанию
  • Инициализация нормального массива с одним значением по умолчанию
  • Interesting Posts

    Gmail SMTP debug: ошибка «войдите в свой веб-браузер»

    Инструкции SSE: какие процессоры могут выполнять атомные операции памяти 16B?

    Возможно, не работает Apache 2.2 на Ubuntu 10.10 (Maverick Meerkat)

    Утечка памяти с настраиваемым шрифтом для настраиваемого шрифта

    Как запустить программу с аргументами командной строки в Windows 'cmd с командой' start '?

    WPF и первоначальный фокус

    Каков самый простой способ подключения двух компьютеров?

    Является ли .NET CLR JIT компилировать каждый метод каждый раз?

    Как нормализовать звук с помощью ffmpeg?

    Наклонный угол на поле CSS

    какая разница между успехом и методом .done () $ .ajax

    Есть ли удобный способ редактировать PATH в Windows 7?

    Обновление базы данных push-уведомлений Firebase

    Возможность перевода электронной почты с Yahoo на GMail с использованием почтового клиента IMAP и ПК

    Плюсы / минусы использования редукс-саги с генераторами ES6 по сравнению с редукцией с ES2017 async / wait

    Давайте будем гением компьютера.