2010-04-02 11 views

risposta

12

Questo è l'unico modo che ho trovato. Curioso se qualcun altro ha un modo migliore.

Copiato da CodeProject

È necessario aggiungere un riferimento a Microsoft.mshtml e, naturalmente, attesa per il documento per completare il caricamento. Ciò salverà le immagini caricate in un componente System.Windows.Forms.WebBrowser webBrowser1, anche quelle che non desideri.


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

hi ... grazie per la risposta, Spero solo che qualcuno si presenti con un'altra soluzione, come ho davvero non posso utilizzare la clipboard del genere ... – lebhero

+0

bene se gli appunti è off limits, poi altri che passare attraverso la cache, l'unico altro modo potrebbe essere quello di scaricare nuovamente l'immagine. Ma vediamo cosa ne pensano gli altri – Asher

+1

Molto utile. Potrebbe voler aggiungere la possibilità di salvare e ripristinare i vecchi dati degli appunti. 'var clipboardData = Clipboard.GetDataObject();' prima di 'foreach' e' Clipboard.SetDataObject (clipboardData); 'dopo' foreach'. – iCantSeeSharp

Problemi correlati