Как запустить браузер, а затем направить его на страницу? - PullRequest
1 голос
/ 03 апреля 2009

Мне нужно запустить браузер, выполнить некоторую работу, а затем заставить браузер перейти к URL-адресу (в таком порядке).
Первая часть, конечно, проста, и у меня есть объект Process. Я в недоумении относительно того, как потом перенаправить его на целевую страницу?

Как мне обработать процесс как браузер и заставить его перейти на нужную страницу? Любая помощь, указатели, фрагменты кода приветствуются.

Ответы [ 5 ]

3 голосов
/ 04 апреля 2009

Вместо того, чтобы запускать браузер и затем переходить на страницу, просто скажите ОС, что вы хотите запустить URL. Windows выберет правильный браузер и перейдет к пользователю по указанному URL.

System.Diagnostics.Process.Start("http://www.StackOverflow.com");
2 голосов
/ 04 апреля 2009

Если вам не нужно делать это в рабочей среде, вы можете использовать для этого библиотеку тестирования, такую ​​как WatiN:

using WatiN.Core;

 //Placeholder page to launch initial browser
 IE ie = new IE("http://www.google.com");

 DoSomeWork();

 //Now navigate to the page you want
 ie.GoTo("http://stackoverflow.com");
1 голос
/ 04 апреля 2009

Моим первым инстинктом для этого вопроса было DDE, но, похоже, он был выведен из эксплуатации в Windows Vista, так что это бесполезно. Позор, поскольку это был единственный последовательный механизм в Windows для межпроцессного взаимодействия (IPC) ... о, как я скучаю по Arexx на Amiga.

В любом случае, я считаю, что следующее будет работать, но, к сожалению, из-за того, как оно работает, он запускает Internet Explorer независимо от настроенного браузера.

  1. Если ваше приложение имеет форму, создайте на ней элемент управления WebBrowser. Установите это значение как невидимое, поскольку мы используем его только в качестве запускающего устройства, а не для отображения веб-страницы.
  2. В коде, в точке, где вы хотите показать веб-страницу, используйте следующий код:

    webBrowser1.DocumentText = "window.open (' Как запустить браузер, а затем направить его на страницу? ', 'BananasAreOhSoYummy');";

Что нужно сделать, это сказать элементу управления WebBrowser, который является просто замаскированным IE, открыть новое окно с именем BananasAreOhSoYummy. Поскольку мы дали окну имя, мы можем использовать эту строку несколько раз, с разными URL, чтобы изменить страницу в этом конкретном окне браузера. (Новое окно откроется, если пользователь случайно закрыл его.)

Я подумаю над подходом, который учитывает выбор браузера по умолчанию.

0 голосов
/ 04 апреля 2009

Я думаю, что вместо отправки URL-адреса в браузер, вы можете отправить ему javascript, который будет запускаться и направлять браузер на сайт.

Не уверен, что это сработает, но я не вижу причин, почему это не сработает

0 голосов
/ 04 апреля 2009

Если вам не нужен фактический экземпляр IE, вы можете использовать элемент управления System.Windows.Forms.WebBrowser.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...