Показать сообщение отдельно
  #1  
Старый 26.04.2018, 07:06
Аватар для LIONSMILE
LIONSMILE LIONSMILE вне форума
Новичок
 
Регистрация: 19.03.2018
Сообщения: 51
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Сохранение WEB страницы с вкладки WebBrowser

Доброго времени суток!

Сделал небольшое приложение, все получилось все работает. Но не могу разобраться с сохранением WEB страницы. По подробнее - на форме есть PageControl на которую помещен вэб-браузер. При работе вэб-браузер в процедуре WebBrowser1NewWindow2 создает вторую вкладку в PageControl, на нее кидает WebBrowser, в котором собственно и отображается результат. Простое сохранение в одном окне WebBrouser делал так:

Код:
procedure TForm1.Button6Click(Sender: TObject);
begin
WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER);
end;

Все работает, все замечательно, вылетает диалоговое окно, выбираешь формат, сохраняешь.
В данном случае получается две вкладки и когда вторая вкладка создана, при нажатии на кнопку "Сохранить" - он сохраняет первую вкладку WebBrouser. А как сохранить вторую?
Мне нужен вариант сохранения именно с функциями OLECMDID enumeration, она же описана в коде выше. Перерыв кучу страниц в интернете, нормальных (да и ненормальных тоже) вариантов решения проблемы не нашел. Пытался использовать вариант такого плана (называется "Извращениям нет предела"): после того как на первой вкладке страница загружена, выполнила код, вывела результат в окно вэб-браузера на второй вкладке, убивал вкладку №1 - все равно - сохраняет только то, что грузилось в первой вкладке.

P.S. Варианты cохранения с использованием CDO (Collaboration Data Objects) не рассматриваю, там "рак мозгов" полный. +100500 вариантов cdosys.dll - при подключении которых, или же вылетают ошибки о том, что такой dll просто нет в системе (хотя она установлена и зарегистрирована), или если брать готовые ***.pas модули то они все равно не работают, так как версии dll прописываются в реестре, а соответственно найти к какой dll относится ***.pas и как он был сделан нельзя, как правило ***.pas выложены без dll на базе которых они созданы.



Спасибо заранее.
Ответить с цитированием