Ізвращенства з webbrowser

Ізвращенства з WebBrowser

У мене на формі є WebBrowser1. У ньому завантажена web сторінка, в якій всього одна картинка і більше нічого. Потрібно цю картинку завантажити в Image1, а в Label1 кинути її ім'я. Як би мені це замутити. Закиньте соурс.

Ну, чого не хто не знає. (

краще отримай Сорс сторінки (inHTTP.get (url): string), і в ньому знайди посилання на картинку, і тим же inHTTP в потік, а потік в Image

Що є парсити?
// Чим відрізняється Мемо від ЛістБокса

Парсити, значить якщо шлях відносить. то перетворити його в абсолютний.

Ну, і як це зробити?

Подивися в хелпе Insert - і все стане ясно.

Хтось (не пам'ятаю хто) пропонував робити таким чином (я просто повторю що він написав):

var
Doc: Variant;
src: String;
begin
Doc: = WB.DefaultInterface.Document;
src: = Doc.images.item (0, "") .src;
end;

WB.DefaultInterface.Document - це що?

WebBrowser.DefaultInterface.Document - це ніби оле об'єкт.

Зи - в WebBrowse мусить бути завантажена дана веб сторінка

Почитай свій перший пости останній.
Ти ж сам пишеш що на формі є TWebBrowser, і що в нього завантажена сторінка, а в останньому питаєш чи повинен бути TWebBrowser і чи в нього повинна бути завантажена сторінка.

А щодо того щоб завантажити картинку з темпорарей - не знаю. Завантаж її заново з інету.
Правда дивлячись для чого ти хочеш використовувати то про що питаєш. А то є такі сайти, які при кожному завантаженні картинки змінюють її. Ну вобщем ти зрозумів про що це я.

Є ще варіант копіювання вмісту TWebBrowser в TImage.
Типу отримуємо в TImage копію того що видем в TWebbrowser "е.

Ось знайшов шматок коду що я використовував в одній зі своїх прог.

procedure TForm1.getbrimage;
var
ViewObject: IViewObject;
begin
try
Webbrowser1.Document.QueryInterface (IViewObject, ViewObject);
try
ViewObject.Draw (DVASPECT_CONTENT, 1, nil, nil, Self.Handle,
image1.Canvas.Handle, nil, nil, nil, 0);
finally
ViewObject._Release;
end;
except
end;
image1.Refresh;
end;


> WebBrowse мусить бути завантажена дана веб сторінка

да


> Можу я її завантажити з куків

в куках зберігається лише текстова інфа.

Спасибі, але млинець вантажити сново фотку це дико і довго (якщо їх штук 20).

Як я знаючи, в TIF (Temporary Internet Files) валяються все об'єкти завантажені інет і картинки теж. Так от якщо картинка уще завантажена чи можу я звернутися до неї в Tif, а не на вузол.
Чи можна вантажити в WB не саму сторінку, а лише її хтмл код.


> Дякую, але млинець вантажити сново фотку це дико і довго (якщо
> Їх штук 20).


> Краще отримай Сорс сторінки (inHTTP.get (url): string), і в
> Ньому знайди посилання на картинку, і тим же inHTTP в потік, а
> Потік в Image


> Як я знаючи, в TIF (Temporary Internet Files) валяються все
> Об'єкти завантажені інет і картинки теж. Так от якщо картинка
> Уще завантажена чи можу я звернутися до неї в Tif, а не на
> Вузол.
> Чи можна вантажити в WB не саму сторінку, а лише її хтмл код.

Справа в тому, що ie називає все такими іменами, що тобі й не снилося. = ((((

За допомогою IHTMLImgElement.Get_href отримати урл картинки - OK

За допомогою GetUrlCacheEntryInfo вивудити ім'я файлу в кеші
А ось як це мутить не маю уявлення!

Не розумію, що це за inHTTP.


> Checist [root] (14.08.03 4:40) [16]
> Як я знаючи, в TIF (Temporary Internet Files) валяються все
> Об'єкти завантажені інет і картинки теж. Так от якщо картинка
> Уще завантажена чи можу я звернутися до неї в Tif, а не на
> Вузол.
> Чи можна вантажити в WB не саму сторінку, а лише її хтмл код.

Просто відключи тоді завантаження графіки і грузи. не будеш витрачати трафік двічі на одну і ту ж сторінку. Не знаю як з TWebBrowser, але постав собі TEmbeddedWB, там відключення графіки робиться дуже просто.

А взагалі я б в твоєму випадку не користувався б TWebBrowser, а скачав би спочатку html, розібрав його, знайшов URL картинки, якщо він відносний, то перетворив би його в абсолютний і далі скачав би саму картинку. І для цього використовував би TNMHTTP або його INDYйскій "аналог" TidHTTP.

Пам'ять: 0.76 MB
Час: 0.051 c