Добрый день. Есть простой код браузера, позволяющий скачать странцу, "выделить все" на странице и скопировать в буфер обмена ОС. все работает (кроме ХТМЛ-страниц с фреймами, там ничего не выделяется)
Но использовать Буфер обмена нежелательно, его могут использовать и другие программы что может привести к ошибкам
вот текущий код:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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 .
|
ВОПРОС: каким образом копировать содержимое страницы в ПЕРЕМ?
Наверно что то вроде:
Код:
1 2 3 4 5 6 7 8 9 10 | var
HTML : TMemoryStream;
if (Webbrowser1 . Document as IHTMLDocument2).queryCommandEnabled( 'Copy' ) then
begin
HTML := TMemoryStream . create;
вот тут какой то код, который переносит в ПЕРЕМ содержимое контейнера браузера
end ;
Application . ProcessMessages;
end ;
|
Если кто в курсе, подскажите код
Заранее спасибо.