![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Интеграция с HTML
Checist [root] © (2003-07-25 02:42:00)
Вот, что мне необходимо сделать:
у меня в IE полностью загружена вэб страница, на ней лишь одна картинка формата bmp или jpg и более ничего. Как мне програмно достучаться до этой картинки (в смысле сохранить)?
В принципе она будет в куках, но как найти, которая из них из них?
___Nikolay (2003-07-25 11:27:00) [1]
for li:=0 to WebBrowser1.OleObject.Document.Images.Length - 1 do
WebBrowser1.OleObject.Document.Images.Item(0).Src...
Ihor Osov'yak (2003-07-25 10:02:00) [2]
Да уж...
1. Получить интерфейс IHTMLWebBrowser2 к соотв. IE
2. Через IHTMLWebBrowser2.Document добраться к IHtmlDocument2
3. Пропарсить IHtmlDocument2 на предмет получения IHTMLImgElement к картинке
4. Посредством IHTMLImgElement.Get_href получить урл картинки
5. При помощи GetUrlCacheEntryInfo выудить имя файла в кеше...
Зы - mshtml.pas,SHDocVw.pas,WinInet.pas + msdn
Зы2 - в случае непоняток, п.1, 3, 5 заслуживают отдельных вопросов.
Зы3. Согласно местных традиций эти вопросы должны идти в форуме "Сети"
cyberwolf (2003-07-25 03:42:00) [3]
хммм... а ведь на новый HTML-файл в директории TEMPORARY INTERNET FILES можно тоже поставить хук... и уже получив путь к файлу грузить куда душа захочет...
cyberwolf (2003-07-25 03:39:00) [4]
А для отлова файла из куков есть два способа (придуманные только что :)
1. Проверять дату самого нового файла с расширением JPG или GIF по какому-либо определенному событию (например изменение URL в Internet Exploder"e). естественно, дату проверять способами Дельфи. но, к сожалению, 100% гарантии этот способ не дает
2. ИМХО извращенный способ. Но здесь и шансы выше. Ты можешь поставить hook на папку Temporary Internet Files (а именно - на появление новых файлов). Как только он появится, сравниваешь его имя с именем из HTML-файла (параметр <img> тега "src"). Как эту ловушку поставить, я не знаю, но поставить можно определенно, потому что слышал сам. Открой новую ветку в форуме :)
Checist [root] (2003-07-25 03:30:00) [5]
Сохраняются.
Все понятно.
1) Далее грузим весь код страницы в ListBox?
А как это сделать - LoadFromFile - не пройдет
2) ВОТ САМОЕ ГЛАВНОЕ: КАК ЗАГРУЗИТЬ ТУ САМУЮ КАРТИНКУ В Image1?
cyberwolf (2003-07-25 03:23:00) [6]
а разве все картинки при соответствующих параметрах не сохраняются в Temporary Internet Files?
cyberwolf (2003-07-25 03:20:00) [7]
нашел-таки :)
Как захватить текущий URL из окна Internet Explorer
--------------------------------------------------------------------------------
Описываем две функции GetText и GetURL:
Function GetText(WindowHandle: hwnd):string;
var
txtLength : integer;
buffer: string;
begin
TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0);
txtlength := txtlength + 1;
setlength (buffer, txtlength);
sendmessage (WindowHandle,wm_gettext, txtlength, longint(@buffer[1]));
result := buffer;
end;
function GetURL:string;
var
ie,toolbar,combo,
comboboxex,edit,
worker,toolbarwindow:hwnd;
begin
ie := FindWindow(pchar("IEFrame"),nil);
worker := FindWindowEx(ie,0,"WorkerA",nil);
toolbar := FindWindowEx(worker,0,"rebarwindow32",nil);
comboboxex := FindWindowEx(toolbar, 0, "comboboxex32", nil);
combo := FindWindowEx(comboboxex,0,"ComboBox",nil);
edit := FindWindowEx(combo,0,"Edit",nil);
toolbarwindow := FindWindowEx(comboboxex, 0, "toolbarwindow32", nil);
result := GetText(edit);
end;
Ну а затем пользуемся функцией GetURL, например, можем в поле ввода по нажатию на кнопку выводит текущий URL:
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=GetURL;
end;
Checist [root] (2003-07-25 03:07:00) [8]
Вот тут и вся хрень, даже если выдрать - придется ли ее сново грузить при обращении или Win сам словит обращение и перенаправит его на картинку в куках?
Кстати, а как его выдрать из IE?
cyberwolf (2003-07-25 03:02:00) [9]
сначала выдрать путь из строки поиска IE, потом загнать HTML-код этой страницы из строки поиска в какой-нибудь StringList. А уже потом последовательно по строчкам искать всякие там <img src= и прочее с помощью функции pos
Checist [root] (2003-07-25 02:52:00) [10]
Мне хотя бы идею! :(