2010-04-02 66 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