Открыть страницу в том же окне браузера из приложения winforms

У меня есть программа .NET winforms, которая включает функцию запуска определенной веб-страницы в окне браузера системы по умолчанию.

Желательно, чтобы страница запускалась в существующем окне браузера пользователя, если оно открыто. Текущие средства запуска браузера всегда создают новое окно:

Process p = new Process();
p.StartInfo.FileName = @"C:\path\to\default\browser.exe";
p.StartInfo.Arguments = "http://pageurl";
p.Start();

Эта программа используется исключительно во внутренней сети, и 99% пользователей используют IE6 (грустно, я знаю). Поддержка других браузеров была бы хорошей, но не обязательной.

Какие-либо предложения? Параметры командной строки IE6 немногочисленны и, похоже, не поддерживают это.


person Karmic Coder    schedule 09.02.2009    source источник
comment
Это не ответ, а просто случайный парень: с точки зрения удобства использования я НЕНАВИЖУ такое поведение. Возможно, у вас есть особые обстоятельства, но приложение, которое захватывает окно браузера, меня разозлит.   -  person ahockley    schedule 09.02.2009
comment
Будет ли вариант просто встроить окно браузера в ваше приложение?   -  person GEOCHET    schedule 09.02.2009
comment
Мне бы это тоже не понравилось, но это популярная функция. Скорее всего, я сделаю это настройкой, контролируемой пользователем.   -  person Karmic Coder    schedule 09.02.2009
comment
Невозможно использовать элемент управления браузера в этом приложении. Все, кроме стандартного окна браузера, вызовет жалобы пользователей. Если бы я не смог заставить элемент управления вести себя точно так же, как выделенное окно, но я бы посчитал это хаком и последним средством.   -  person Karmic Coder    schedule 09.02.2009
comment
Это звучит очень похоже на WTF в процессе создания.   -  person GEOCHET    schedule 09.02.2009
comment
Это просто верхушка айсберга WTF, который я раскрываю этим вопросом. Остальная часть приложения и цель его существования более болезненны, если вы в это верите.   -  person Karmic Coder    schedule 09.02.2009
comment
Вы когда-нибудь находили решение для этого? У меня есть приложение колл-центра, где это требуется.   -  person catalpa    schedule 15.04.2011
comment
К сожалению нет. Принятый ответ, вероятно, лучший.   -  person Karmic Coder    schedule 04.05.2011


Ответы (2)


Простой ответ заключается в том, что вы не можете.

Вы порождаете новый процесс, который не имеет ничего общего с вашим приложением. Вы можете проверить, запущен ли процесс IExplore.EXE, и сделать несколько SENDKEYS в окно приложения, но это немного отрывочно.

Вы можете отобразить веб-сайт внутри элемента управления WebBrowser, но это совершенно другое.

person jgallant    schedule 09.02.2009

Что, если пользователь использует эту страницу браузера? Вы не хотите, чтобы угнать его. Современные браузеры достаточно умны, чтобы при необходимости создавать новую вкладку.

person Joel Coehoorn    schedule 09.02.2009
comment
Эта программа используется исключительно во внутренней сети, и 99% пользователей используют IE6. - person Karmic Coder; 09.02.2009
comment
хорошо. Тем не менее, вы не хотите захватывать активное окно браузера, которое может использоваться. - person Joel Coehoorn; 09.02.2009