Недостаток того что выше: любая картинца сохраниться как BMP. А если анимированный ГИФ и т.п.?
Вот что нашел:
Код:
function GetCacheFileName(const Url: string; var FileName: string): Boolean;
var
Info: PInternetCacheEntryInfo;
InfoBufSize: Cardinal;
begin
Result := False;
InfoBufSize := 0;
GetUrlCacheEntryInfo(PChar(Url),
TInternetCacheEntryInfo(nil^), InfoBufSize);
if GetLastError = ERROR_INSUFFICIENT_BUFFER then begin
GetMem(Info, InfoBufSize);
try
Result := GetUrlCacheEntryInfo(PChar(Url),
TInternetCacheEntryInfo(Info^), InfoBufSize);
if Result then begin
FileName := Info^.lpszLocalFileName;
end;
finally
FreeMem(Info);
end;
end;
end;
Этот код возвращает имя файла в кеше по УРЛ. Таким образом, можно код и поста выше доработать так:
1. Получаем список всех картинок на странице
2. В цикле пробегаем все и смотрим их УРЛ.
3. По УРЛ получаем имя в КЭШе и копируем из КЭШа куда нам надо
Спасибо интернету.