Я разрабатываю небольшое приложение на C # и в нем есть веб-браузер. В настоящее время все настройки по умолчанию на моем компьютере говорят, что Google Chrome - это браузер по умолчанию, но когда я нажимаю ссылку в своем приложении, чтобы открыть в новом окне, он открывает Internet Explorer. Есть ли способ сделать эти ссылки открытыми в браузере по умолчанию? Или что-то не так на моем компьютере?
Моя проблема в том, что у меня есть веб-браузер в приложении, так что вы, например, заходите в Google и вводите «переполнение стека», нажимаете правой кнопкой мыши первую ссылку и нажимаете «Открыть в новом окне», она открывается в IE вместо Chrome. Это то, что я неправильно закодировал, или на моем компьютере неверные настройки
=== РЕДАКТИРОВАТЬ ===
Это действительно раздражает. Я уже знаю, что браузер IE, но у меня раньше он работал нормально. Когда я нажал на ссылку, она открылась в Chrome. Я использовал Sharp Develop для создания приложения в то время, потому что я не мог получить C # Express для запуска. Я сделал новую установку Windows, и поскольку я не слишком далеко продвинулся в своем приложении, я решил начать все сначала, и теперь у меня возникла эта проблема. Вот почему я не уверен, если это мой компьютер или нет. Почему IE запускает весь браузер при нажатии на ссылку, а не просто открывает новую ссылку в браузере по умолчанию?
Ответы:
Вы можете просто написать
РЕДАКТИРОВАТЬ :
WebBrowser
элемент управления является встроенной копией IE.Поэтому любые ссылки внутри него будут открываться в IE.
Чтобы изменить это поведение, вы можете обработать
Navigating
событие.источник
Process.Start(e.Url.ToString())
Для тех, кто нашел этот вопрос в дотнет ядре. Я нашел решение здесь
Код:
источник
open
командой вместоxdg-open
RuntimeInformation.IsOSPlatform(OSPlatform.OSX)
или это уже будет верно в Linux?xdg-command
возвращает «xdg-open: команда не найдена». Затем я проверил сopen
командой и работает.это должно решить вашу проблему
источник
Вы пробовали,
Process
как упомянуто здесь: http://msdn.microsoft.com/de-de/library/system.diagnostics.process.aspx ?Вы могли бы использовать
источник
UseShellExecute
по умолчанию true.true
.Process.Start(url)
, он не откроет новое окно браузера.Посмотрите на элемент управления GeckoFX .
источник
Попробуйте это, по-старому, школьный путь;)
используя: openit ("www.google.com");
источник
После многих исследований я чувствую, что большинство из приведенных ответов не будут работать с ядром dotnet. 1
System.Diagnostics.Process.Start("http://google.com")
.; - не будет работать с ядром dotnet2.Он будет работать, но заблокирует открытие нового окна в случае, если браузером по умолчанию является Chrome
Ниже приведен самый простой и будет работать во всех сценариях.
источник
Это открыло по умолчанию для меня:
источник
dotnet core
выдает ошибку, если мы используемProcess.Start(URL)
. Следующий код будет работать вdotnet core
. Вы можете добавить любой браузер вместоChrome
.источник
В UWP:
источник
Открыть динамически
источник
обновить реестр текущей версией проводника
@ "Программное обеспечение \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION"
источник