Запустите URL в новом окне, используя C ++ (Windows) - PullRequest
4 голосов
/ 11 мая 2009

Как я могу запустить URL в новом окне, используя C ++ (только для Windows)?

Прямой подход, кажется, открывает новую вкладку в существующем окне браузера. (Или, если просмотр с вкладками отключен, новый URL захватывает существующее окно браузера).

Это для (большого) настольного приложения, использующего MFC и Qt.

Ответы [ 4 ]

9 голосов
/ 12 мая 2009

Я использовал это для отображения локально сгенерированного html в браузере по умолчанию, в моем случае имя файла выглядит примерно так: «c: \ temp \ page.html», возможно, замена имени файла на URL может сработать ??

ShellExecute(NULL,"open",filename,NULL,NULL,SW_SHOWNORMAL);

Обновлен: http://support.microsoft.com/kb/224816

Как ShellExecute определяет, следует ли запускать новый экземпляр Когда ShellExecute просматривает реестр, он ищет подраздел shell \ open. Если определен ключ shell \ open \ ddeexec, то сообщение динамического обмена данными (DDE) с указанным приложением IExplore и темой WWW_OpenURL передается всем окнам верхнего уровня на рабочем столе. Первое приложение, которое ответит на это сообщение, - это приложение, которое отправляет запрошенный URL-адрес. Если ни одно приложение не отвечает на это сообщение DDE, ShellExecute использует информацию, содержащуюся в подразделе shell \ open \ command, для запуска приложения. Затем он повторно передает сообщение DDE для перехода на запрошенный URL-адрес.

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

0 голосов
/ 12 мая 2009

Ты не можешь вообще. Браузер пользователя может делать все, что захочет пользователь.

Одним из способов достижения желаемого эффекта может быть вставка определенного браузера в собственное окно (скажем, элемент управления IE ActiveX) и отображение этого URL.

0 голосов
/ 12 мая 2009

Вот ссылка на некоторый код, который откроет URL в новом браузере . Код ищет приложение по умолчанию для обработки документа HTML, а затем явно открывает это приложение с помощью вызова ShellExecute.

0 голосов
/ 11 мая 2009

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

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