Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.04.08;
Скачать: [xml.tar.bz2];

Вниз

TWebBrowser и копирование страницы в ПЕРЕМ   Найти похожие ветки 

 
Pcrepair ©   (2011-12-14 16:48) [0]

Добрый день. Есть простой код браузера, позволяющий скачать странцу, "выделить все" на странице и скопировать в буфер обмена ОС. все работает (кроме ХТМЛ-страниц с фреймами, там ничего не выделяется)
Но использовать Буфер обмена нежелательно, его могут использовать и другие программы что может привести к ошибкам
вот текущий код:

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;

Если кто в курсе, подскажите код
Заранее спасибо.


 
KilkennyCat ©   (2011-12-14 20:09) [1]


> Application.ProcessMessages; //хотя зачем это несовсем понятно

если непонятно, то зачем написал?

а чем тебе не нравится для хранения Webbrowser1.Document as IHTMLDocument2 ?


 
Dimka Maslov ©   (2011-12-14 21:29) [2]


> а чем тебе не нравится для хранения Webbrowser1.Document
> as IHTMLDocument2 ?


Это же не та самая ПЕРЕМ!


 
KilkennyCat ©   (2011-12-14 23:43) [3]


> Dimka Maslov ©   (14.12.11 21:29) [2]

скорее всего. ибо вряд ли программист, знающий Set8087CW($133F); не сообразит столь банальной вещи.


 
Palladin ©   (2011-12-15 14:29) [4]

кто сказал что он программист ? )


 
Pcrepair ©   (2011-12-15 14:36) [5]

по существу вопроса кто что знает?

> а чем тебе не нравится для хранения Webbrowser1.Document
> as IHTMLDocument2 ?

то есть получается что у ТВебБраузер свои типы переменных? и в TMemoryStream данные из браузера не запихнуть?
в ПЕРЕМ данные размещаются для последующей обработки - удаления всего лишнего (скриптов, флэш, картинок, стилей)


 
Dimka Maslov ©   (2011-12-15 16:59) [6]

Любой программист должен знать, что есть MSDN, в которой написано буквально всё, что касается программирования под венду. В частности описание интерфейса IHTMLDocument2
http://msdn.microsoft.com/en-us/library/aa752574%28v=vs.85%29.aspx

Впрочем, если программист не знает, зачем у него в коде Application.ProcessMessages
и
Set8087CW($133F)...


 
Pcrepair ©   (2011-12-15 17:18) [7]

хватит уже теорий, тут форум для начинающих
или делитесь опытом или флудите в другом месте


 
Dimka Maslov ©   (2011-12-15 17:28) [8]

1. Вообще-то это форум для законченных.
2. Опыта у нас нет
3. Даже если бы и был делиться им мы не обязаны
4. Мы знаем, где можно прочитать про это
5. У нас нет времени читать, разбираться и докладывать, это можно сделать самостоятельно.
6. Да, у нас есть время флудить здесь.


 
Pcrepair ©   (2011-12-15 17:49) [9]

димок, пойди уже лучше дворником поработай, на свежем воздухе, не погрязуй во флуде



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2012.04.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
15-1323312036
Slider007
2011-12-08 06:40
2012.04.08
Поиск работы продолжается


11-1206012968
Nikfel
2008-03-20 14:36
2012.04.08
Как вывести окно с прозрачным цветом.


6-1254688951
xarfan
2009-10-05 00:42
2012.04.08
Идентификация пользователей при работе с Сокетами (Delphi)


2-1323931915
И. Павел
2011-12-15 10:51
2012.04.08
Incorrect Syntax на одной машине, а на другой &amp;#151; все работает...


2-1324013868
И. Павел
2011-12-16 09:37
2012.04.08
Перезапуск службы после остановки системой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский