我目前正在从剪贴板复制到从浏览器加载图片
IHTMLDocument2 doc = (IHTMLDocument2) webBrowser1.Document.DomDocument;
IHTMLControlRange imgRange = (IHTMLControlRange) ((HTMLBody) doc.body).createControlRange();
foreach (IHTMLImgElement img in doc.images)
{
imgRange.add((IHTMLControlElement) img);
imgRange.execCommand("Copy", false, null);
using (Bitmap bmp = (Bitmap) Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
{
bmp.Save(@"C:\"+img.nameProp);
}
}
但是使用剪贴板时遇到了一些问题。有没有其他方法可以做到这一点。在Internet Explorer中,所有图像都会转到临时目录,如果发生同样的情况,有没有办法获取该保存图像的路径?
答案 0 :(得分:2)
对于页面上的每个图像,您可以收集其URL,然后调用WinINET缓存枚举函数(例如FindFirstURLCacheEntry)以在Temporary Internet Files文件夹中找到后备缓存文件。但是,不能保证文件将在缓存中,因为它可能已经提供了禁止缓存的标头等。
您可以考虑的一种方法是在您的应用程序中使用FiddlerCore(www.fiddler2.com/core);然后,您可以“脱线”抓住所有传输的图像,并随心所欲地做任何事情。