我需要在Twebbrowser中保存特定图像,但不要重新加载;图像已加载。我知道如何获取图像的源URL并下载它,但我真正需要的是保存已经加载到浏览器中的图像。有办法吗?
谢谢!
答案 0 :(得分:4)
似乎没有直接的方法将图像元素保存到文件中,所以我会从缓存中获取它。要通过给定资源URL从IE缓存复制文件,您可以使用如下函数。 URL
参数是HTML标记的src
属性值,FileName
是目标文件名:
uses
WinInet;
procedure SaveInetResourceToFile(const URL, FileName: string);
var
BufferSize: DWORD;
CacheEntry: PInternetCacheEntryInfo;
begin
if not RetrieveUrlCacheEntryFile(PChar(URL), TInternetCacheEntryInfo(nil^),
BufferSize, 0) then
begin
if GetLastError = ERROR_INSUFFICIENT_BUFFER then
begin
GetMem(CacheEntry, BufferSize);
try
if RetrieveUrlCacheEntryFile(PChar(URL), CacheEntry^, BufferSize, 0) then
try
Win32Check(CopyFile(CacheEntry.lpszLocalFileName, PChar(FileName),
False));
finally
Win32Check(UnlockUrlCacheEntryFile(PChar(URL), 0));
end
else
RaiseLastOSError;
finally
FreeMem(CacheEntry);
end;
end
else
RaiseLastOSError;
end;
end;