Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.12.2011, 16:56
Pcrepair
 
Сообщения: n/a
По умолчанию TWebBrowser и копирование страницы в ПЕРЕМ

Добрый день. Есть простой код браузера, позволяющий скачать странцу, "выделить все" на странице и скопировать в буфер обмена ОС. все работает (кроме ХТМЛ-страниц с фреймами, там ничего не выделяется)
Но использовать Буфер обмена нежелательно, его могут использовать и другие программы что может привести к ошибкам
вот текущий код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  URL, Flags, TargetFrameName, PostData, Headers: Olevariant;
begin
  URL := Edit1.Text;
  Flags := 0;
  TargetFrameName := 0;
  Postdata := 0;
  Headers := 0;
  EmptyParam;
  WebBrowser1.Navigate(URL, Flags, TargetFrameName, PostData, Headers);
  repeat
    Application.ProcessMessages;
  until WebBrowser1.ReadyState >= READYSTATE_COMPLETE;
  if WebBrowser1.Document <> nil then
  (Webbrowser1.Document as IHTMLDocument2).ParentWindow.Focus;
  WebBrowser1.ExecWB(OLECMDID_SELECTALL,OLECMDEXECOPT_DONTPROMPTUSER);
  Application.ProcessMessages;
  if (Webbrowser1.Document as IHTMLDocument2).queryCommandEnabled('Copy') then
  WebBrowser1.ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER); //вот тут копируем в буфер обмена
  Application.ProcessMessages;
end;

initialization
  Set8087CW($133F);
  OleInitialize(nil);
finalization
  OleUninitialize;
end.
ВОПРОС: каким образом копировать содержимое страницы в ПЕРЕМ?
Наверно что то вроде:
Код:
var
HTML : TMemoryStream; //та самая ПЕРЕМ, далее остальной код, меняем {WebBrowser1.ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER);} на что то типа

if (Webbrowser1.Document as IHTMLDocument2).queryCommandEnabled('Copy') then
  begin
    HTML := TMemoryStream.create; //создадим поток
     вот тут какой то код, который переносит в ПЕРЕМ содержимое контейнера браузера
  end;
Application.ProcessMessages; //хотя зачем это несовсем понятно
end;
Если кто в курсе, подскажите код
Заранее спасибо.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:28.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025