C как открыть браузер
WebBrowser предоставляет функции интернет-браузера, позволяя загружать и отображать контент из сети интернет. В то же время важно понимать, что данный элемент не является полноценным веб-браузером, и возможности по его настройки и изменению довольно ограничены.
Рассмотрим основные его свойства:
AllowWebBrowserDrop : при установке для данного свойства значения true можно будет с помощью мыши переносить документы в веб-браузер и открывать их.
CanGoBack : определяет, может ли веб-браузер переходить назад по истории просмотров
CanGoForward : определяет, может ли веб-браузер переходить вперед
Document : возвращает открытый в веб-браузере документ
DocumentText : возвращает текстовое содержание документа
DocumentTitle : возвращает заголовок документа
DocumentType : возвращает тип документа
IsOffline : возвращает true, если отсутствует подключение к интернету
ScriptErrorsSuppressed : указывает, будут ли отображаться ошибки javascript в диалоговом окне
ScrollBarsEnabled : определяет, будет ли использоваться прокрутка
URL : возвращает или устанавливает URL документа в веб-браузере
Кроме того, WebBrowser содержит ряд методов, которые позволяют осуществлять навигацию между документами:
GoBack() : осуществляет переход к предыдущей странице в истории навигации (если таковая имеется)
GoForward() : осуществляет переход к следующей странице в истории навигации
GoHome() : осуществляет переход к домашней странице веб-браузера
GoSearch() : осуществляет переход к странице поиска
Navigate : осуществляет переход к определенному адресу в сети интернет
Таким образом, чтобы перейти к определенному документу, надо исользовать метод Navigate:
Создадим небольшй веб-браузер. Для этого поместим на форму элементы WebBrowser, TextBox (в него будем вводить адрес) и Button. И в файле формы пропишем следующий код:
И по нажатию кнопки произойдет переход к адресу, введенному в текстовое поле:
How to open a web page from my application?
I want to make my WPF application open the default browser and go to a certain web page. How do I do that?
9 Answers 9
For desktop versions of .NET:
For .NET Core, the default for ProcessStartInfo.UseShellExecute has changed from true to false , and so you have to explicitly set it to true for this to work:
To further complicate matters, this property cannot be set to true for UWP apps (so none of these solutions are usable for UWP).
Accepted answer no longer works on .NET Core 3. To make it work, use the following method:
I’ve been using this line to launch the default browser:
While a good answer has been given (using Process.Start ), it is safer to encapsulate it in a function that checks that the passed string is indeed a URI, to avoid accidentally starting random processes on the machine.
Here is my complete code how to open.
there are 2 options:
open using default browser (behavior is like opened inside the browser window)
open through default command options (behavior is like you use "RUN.EXE" command)
open through ‘explorer’ (behavior is like you wrote url inside your folder window url)
[optional suggestion] 4. use iexplore process location to open the required url
Как подключить сторонний браузер в приложении на C#
В определенный момент мне стало некомфортно использовать стандартный контрол WebBrowser, предлагаемый Visual Studio.
Причин было несколько:
1. Использовался IE-движок, что само по себе уже сильный аргумент.
2. Кривая работа с JS.
3. Отсутствие масштабирования.
4. Если запустить на машине, где стоит IE6, то все его «достоинства» переносятся на приложение.
В итоге был начат поиск альтернативных решений.
Было рассмотрено 2 SDK. xulrunner(Mozilla) и Awesomium(Chrome)
Подключение обоих происходит примерно одинаково, но на всякий случай опишу оба.

1. xulrunner
шаг 1
Идем на офицальный сайт http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/
Выбираем подходящую нам версию.
Тут хотелось бы сделать маленькое отступление. Чем позднее версия, тем она тяжелее: к примеру, 1.9v весит 21Мб., а уже 19v весит 32Мб. Помимо этого каждая следующая версия требует все больше ресурсов. Забегая вперед скажу, что это и стало основной причиной отказа от этой SDK.
По данной ссылке заходим в папку с выбранной версией, далее sdk/xulrunner-X.X.en-US.win32.sdk.zip
шаг 2
Скачиваем и распаковываем содержимое. Нас интересует из архива только папочка bin. Копируем ее в папку с приложением и переименовываем в xulrunner. Имя можно и другое, но чтобы не было различий с моим описанием, лучше имя сделать такое.
шаг 3
Для работы с этой SDK нам потребуется библиотека Skybound.GeckoFX.bin.v1.9.1.0 Ее можно скачать тут http://code.google.com/p/geckofx/
Данная библиотека работает xulrunner версии 1.9.
Если вы решили использовать более позднюю версию, то нужно искать Skybound.GeckoFX 2.0, она подходит для версий 2.0 и выше.
шаг 4
В нашем приложении добавляем в References Skybound.Gecko.dll из скачанного архива
шаг 5
Правим класс Program:
Инициализируем контрол браузера:
По данному коду родительской панелью будет panel1
шаг 6
Чтобы выполнить программно какой-либо JavaScript пришлось идти на ухищрения, т.к. то ли функции, которые для этого по идее предназначены не дописаны в этой версии, то ли что-то еще. Но выход я нашел только такой:
Минусом является то, что нельзя получить результат обработки, только в виде alert();
Данная проблема также стала причиной того, что я начал искать замену и пришел к Awesomium

2. Awesomium
шаг 1
Скачиваем SDK по ссылке http://awesomium.com/
На сайте имеется две версии — стабильная(1.6.5) и тестовая(1.7). Тестовая в целом работает лучше.
Для работы нам понадобятся файлы
Awesomium.Core.dll
Awesomium.dll
Awesomium.Windows.Controls.Design.dll
Awesomium.Windows.Controls.dll
Awesomium.Windows.Forms.dll
шаг 2
Подключаем к проекту библиотеки
Awesomium.Core.dll
Awesomium.Windows.Forms.dll
шаг 3
В Toolbox кликаем правой кнопкой и выбираем Choose Items. Далее жмем browse и подключаем Awesomium.Windows.Forms.dll, после этого у нас появится новые контролы WebControl, AddressBox и т.д. Нам в первую очередь важен WebControl
шаг 4
Размещаем контрол в дизайне
шаг 5
Примеры использования различных функций.
500 — это таймаут.
Вызов JS функции
al — это имя функции
второй параметр передает значения в фунцию. В данном случае он пустой.
Приведенные примеры работают на Awesomium 1.6.5, в версии 1.7 немного изменена архитектура и некоторые методы могут отсутствовать или вызываться по другому.
Выводы
На текущий момент во всех проектах, где нужен браузер, использую Awesomium: он и работает стабильнее и функционал побогаче. Нагрузка от него небольшая. Единственный минус — это то, что не отрабатывает клик правой кнопкой по флешу, потому нельзя поменять необходимые параметры(возможно я просто не разобрался как). В остальном данная SDK меня во всем устроила.
Как открыть веб-браузер из программы .NET? Process.Start () не работает?
У меня есть URL-адрес, и я хочу запустить его в браузере по умолчанию. Я пробовал два метода:
. и тот, который подробно описан в этом другом вопрос с помощью ShellExecute.
В обоих случаях я получаю сообщение об ошибке: Windows не может найти «http://stackoverflow.com». Убедитесь, что вы правильно ввели имя, а затем повторите попытку.
Он не должен пытаться открыть его как файл . насколько я понимаю, он должен распознать его как URL-адрес и открыть его в браузере по умолчанию. Что мне не хватает?
Кстати: OS = Vista, а .NET = 3.5
ИЗМЕНИТЬ :
Согласно этой статье MS KB, поскольку Process.Start устанавливает UseShellExecute по умолчанию, он должен запускать Браузер по умолчанию.
ИЗМЕНИТЬ :
Вот что работает:
К сожалению, это действительно не запускает браузер по умолчанию, и он также не работает, если IE не установлен в «обычном» месте. Я не знаю, что здесь делать.
Дополнительная информация :
Хорошо, поэтому я получаю сообщение об ошибке с номером -2147467259. Глядя на это в Google, кажется, что это не очень наглядно. Это может быть ошибка ассоциации файлов или что-то в этом роде.
Сюжет усиливается :
Итак, я проверил раздел реестра, в котором должна быть ассоциация файлов для http: