FAQ:如何从URL取得其在Internet Cache中的文件名

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

问========================================

张硕,你好,

我目前对IE编程感兴趣,在网上看到了你的文章,觉得很不错。

我用了很长时间的MyIE(现在叫Maxthon),它里面有一个功能不错,就是按住

Ctrl键然后拖动一个图片,就可以把这个图片保存到一个默认的目录下(在设置中

设)。我刚开始以为它只是把图片再下载一次,但是我拔网线后再Ctrl+拖鼠标,还是

能够保存图片。

我打算自己写一写,但是IOleCommandTarget::Exec()和IWebBrowser2::ExecWB()

都会弹出另存为对话框。

请问你,有什么高招能够直接把图片从Cache中拷出来吗?

非常感谢!

2004-11-05

答========================================

在WinInet库中Microsoft提供了一系列的API函数来操作Internet Cache,所以你的要求很容易满足。下面的例子给出了根据url取得其在Internet临时目录中文件名的方法。得到鼠标拖动的图片的url比较简单,此处不再赘述。

DWORD dwEntrySize=0;

LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry;

char strTemp[80];

DWORD dwTemp;

//假设lpszUrl是图片的url

if (!GetUrlCacheEntryInfo(lpszUrl,NULL,&dwEntrySize))

{

if (GetLastError()!=ERROR_INSUFFICIENT_BUFFER)

{

return FALSE;

}

else

lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO)new char[dwEntrySize];

}

else

return FALSE;

if (!GetUrlCacheEntryInfo(lpszUrl,lpCacheEntry,&dwEntrySize))

{

return FALSE;

}

else

{

//lpCacheEntry->lpszLocalFileName即是lpszUrl在缓存中的文件名

return TRUE;

}

引用地址:FAQ:如何从URL取得其在Internet Cache中的文件名

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航