Форум: "Сети";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
ВнизИнтеграция с HTML Найти похожие ветки
← →
Checist [root] (2003-07-25 02:42) [0]Вот, что мне необходимо сделать:
у меня в IE полностью загружена вэб страница, на ней лишь одна картинка формата bmp или jpg и более ничего. Как мне програмно достучаться до этой картинки (в смысле сохранить)?
В принципе она будет в куках, но как найти, которая из них из них?
← →
Checist [root] (2003-07-25 02:52) [1]Мне хотя бы идею! :(
← →
cyberwolf (2003-07-25 03:02) [2]сначала выдрать путь из строки поиска IE, потом загнать HTML-код этой страницы из строки поиска в какой-нибудь StringList. А уже потом последовательно по строчкам искать всякие там <img src= и прочее с помощью функции pos
← →
Checist [root] (2003-07-25 03:07) [3]Вот тут и вся хрень, даже если выдрать - придется ли ее сново грузить при обращении или Win сам словит обращение и перенаправит его на картинку в куках?
Кстати, а как его выдрать из IE?
← →
cyberwolf (2003-07-25 03:20) [4]нашел-таки :)
Как захватить текущий 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;
← →
cyberwolf (2003-07-25 03:23) [5]а разве все картинки при соответствующих параметрах не сохраняются в Temporary Internet Files?
← →
Checist [root] (2003-07-25 03:30) [6]Сохраняются.
Все понятно.
1) Далее грузим весь код страницы в ListBox?
А как это сделать - LoadFromFile - не пройдет
2) ВОТ САМОЕ ГЛАВНОЕ: КАК ЗАГРУЗИТЬ ТУ САМУЮ КАРТИНКУ В Image1?
← →
cyberwolf (2003-07-25 03:39) [7]А для отлова файла из куков есть два способа (придуманные только что :)
1. Проверять дату самого нового файла с расширением JPG или GIF по какому-либо определенному событию (например изменение URL в Internet Exploder"e). естественно, дату проверять способами Дельфи. но, к сожалению, 100% гарантии этот способ не дает
2. ИМХО извращенный способ. Но здесь и шансы выше. Ты можешь поставить hook на папку Temporary Internet Files (а именно - на появление новых файлов). Как только он появится, сравниваешь его имя с именем из HTML-файла (параметр <img> тега "src"). Как эту ловушку поставить, я не знаю, но поставить можно определенно, потому что слышал сам. Открой новую ветку в форуме :)
← →
cyberwolf (2003-07-25 03:42) [8]хммм... а ведь на новый HTML-файл в директории TEMPORARY INTERNET FILES можно тоже поставить хук... и уже получив путь к файлу грузить куда душа захочет...
← →
Ihor Osov'yak (2003-07-25 10:02) [9]Да уж...
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. Согласно местных традиций эти вопросы должны идти в форуме "Сети"
← →
___Nikolay (2003-07-25 11:27) [10]
for li:=0 to WebBrowser1.OleObject.Document.Images.Length - 1 do
WebBrowser1.OleObject.Document.Images.Item(0).Src...
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c