Aptem |
Отправлено: 26.01.2004, 21:06 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
Привет, Всем!
У меня в программе есть такой код:
CODE | ShellExecute ( NULL, "open", "preview.htm", NULL, NULL, SW_SHOWDEFAULT ); |
Эта команда открывает окно браузера и загружает туда файл preview.htm. Если, предположим, что окно уже открыто, то новое окно не создается, а содержимое файла загружается именно в это окно. Как создать "настоящее новое" окно? Может какие-нибудь параметры в функции поменять?
Спасибо за внимание!
|
|
Gedeon |
Отправлено: 27.01.2004, 15:42 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
ShellExecute() тут не поможет, используй CreateProcess()
|
|
Aptem |
Отправлено: 27.01.2004, 16:46 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
QUOTE (Gedeon @ 27/01/2004, 16:44) | ShellExecute() тут не поможет, используй CreateProcess() |
Спасибо за ответ! Но, как именно его использовать?
|
|
Gedeon |
Отправлено: 27.01.2004, 17:35 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Билдера на новой2 работе пока нет, поэтому совет такой F1 и в индексах набираешь нужное тебе слово, или поиск.
|
|
Snake |
Отправлено: 27.01.2004, 18:32 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 22
|
QUOTE (Aptem @ 26/01/2004, 22:08) | У меня в программе есть такой код:
CODE | ShellExecute ( NULL, "open", "preview.htm", NULL, NULL, SW_SHOWDEFAULT ); |
Эта команда открывает окно браузера и загружает туда файл preview.htm. Если, предположим, что окно уже открыто, то новое окно не создается, а содержимое файла загружается именно в это окно. Как создать "настоящее новое" окно? Может какие-нибудь параметры в функции поменять? |
Может, подойти к проблеме с другой стороны и формировать html-файл с уникальным (временным) именем? |
|
Aptem |
Отправлено: 27.01.2004, 19:47 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
А что это даст...уникальное(временное) имя?
|
|
Snake |
Отправлено: 28.01.2004, 10:55 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 22
|
QUOTE (Aptem @ 27/01/2004, 20:49) | А что это даст...уникальное(временное) имя? |
Каждый раз по ShellExecute будет открываться новое окно браузера.
Может, я чего-то не понимаю, объясни подробней, для чего тебе это нужно. |
|
Aptem |
Отправлено: 28.01.2004, 12:50 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
QUOTE (Snake @ 28/01/2004, 11:57) | QUOTE (Aptem @ 27/01/2004, 20:49) | А что это даст...уникальное(временное) имя? |
Каждый раз по ShellExecute будет открываться новое окно браузера.
Может, я чего-то не понимаю, объясни подробней, для чего тебе это нужно. |
Объясняю подробнее:
У меня есть приложение, в котором я формирую HTML-код. Есть кнопка "Предпросмотр", по действию которой, происходит сохранение этого HTML-кода в файл "preview.htm", а затем через ShellExecute я запускаю этот файл, открывается окно браузера и все вроде бы нормально...
Теперь представим такую ситуацию:
Предположим, что у меня открыто несколько окон браузера ( допустим, что я только что проверял почту, сообщения в форуме и мало ли чего еще... ). Если теперь запустить мое приложение и нажать кнопку "Предпросмотр", то новое окно уже не появится, а выбирется одно из уже имеющихся окон и туда загрузится страница. Так вот в чем проблема: я хочу, чтобы открывалось новое окно браузера, даже если уже есть открытые окна.
Думаю, теперь понятно.
|
|
Snake |
Отправлено: 29.01.2004, 12:31 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 22
|
QUOTE (Aptem @ 28/01/2004, 13:52) | У меня есть приложение, в котором я формирую HTML-код. Есть кнопка "Предпросмотр", по действию которой, происходит сохранение этого HTML-кода в файл "preview.htm", а затем через ShellExecute я запускаю этот файл, открывается окно браузера и все вроде бы нормально...
Теперь представим такую ситуацию:
Предположим, что у меня открыто несколько окон браузера ( допустим, что я только что проверял почту, сообщения в форуме и мало ли чего еще... ). Если теперь запустить мое приложение и нажать кнопку "Предпросмотр", то новое окно уже не появится, а выбирется одно из уже имеющихся окон и туда загрузится страница. Так вот в чем проблема: я хочу, чтобы открывалось новое окно браузера, даже если уже есть открытые окна. |
Действительно, я немного не так понял вопрос.
У меня тоже есть подобное приложение и работает, как надо тебе. Но, при соблюдении 2-х условий: каждый HTML-файл под уникальным именем и в MSIE 6.0 (мой браузер по умолчанию) не установлено "Использовать одно и то же окно для загрузки ярлыков".
Чтобы открывать окно при любых установках MSIE -- нужно использовать MSIE как COM-сервер (в деталях не разбирался).
Я вижу 3 варианта:
- В браузере по-умолчанию установить, чтобы открывать ярлыки в новом окне. Если пользователь изменил настройки -- значит, так ему больше нравится.
- Открывать всегда в MSIE, всегда в новом окне. Довольно жестко, но будет всегда работать.
- Открывать в программе при помощи CppWebBrowser.
P.S. Посмотрел свой код, у меня:
ShellExecute(GetDesktopWindow(), "Open", file.c_str(), NULL, NULL, SW_SHOWNORMAL)
Почему именно так -- не помню, давно писалось...
Попробуй, на всякий случай.
|
|
Aptem |
Отправлено: 29.01.2004, 18:35 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
QUOTE (Snake @ 29/01/2004, 13:33) | P.S. Посмотрел свой код, у меня:
ShellExecute(GetDesktopWindow(), "Open", file.c_str(), NULL, NULL, SW_SHOWNORMAL)
Почему именно так -- не помню, давно писалось...
Попробуй, на всякий случай. |
Это не помогло, а вот про свойства браузера я не подумал. Убрал оттуда галочку и все заработало... Огромное спасибо !
|
|
|