2010-04-02 63 views

回答

12

这是我能找到的唯一途径。好奇的是,如果其他人有更好的方法。

CodeProject

复制你必须添加引用Microsoft.mshtml,当然等待的用于完成加载文档。这将保存加载在System.Windows.Forms.WebBrowser webBrowser1组件中的图像 - 即使是你不想要的图像。


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); 
    } 
} 
+0

喜...感谢回答, 我只是希望有人会想出另一种解决方案,因为我真的无法用这样的剪贴板... – lebhero 2010-04-02 19:22:26

+0

好,如果剪贴板是关闭的限制,那么其他比通过缓存,唯一的另一种方式可能是再次下载图像。但让我们看看别人想出什么 – Asher 2010-04-03 00:33:10

+1

非常有用。可能希望添加保存和恢复旧剪贴板数据的功能。 var clipboardData = Clipboard.GetDataObject();'foreach'前面的''Clipboard.SetDataObject(clipboardData);''foreach'后''。 – iCantSeeSharp 2013-01-22 10:16:16