![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день. Есть простой код браузера, позволяющий скачать странцу, "выделить все" на странице и скопировать в буфер обмена ОС. все работает (кроме ХТМЛ-страниц с фреймами, там ничего не выделяется)
Но использовать Буфер обмена нежелательно, его могут использовать и другие программы что может привести к ошибкам вот текущий код: Код:
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; Заранее спасибо. |
#2
|
|||
|
|||
![]() живые есть?
|