2011-09-01 58 views
1

我目前從剪貼板複製到瀏覽器從加載圖像而沒有重新下載或複製

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中,所有圖像都轉到臨時目錄,如果在這裏發生同樣的情況,是否有任何方法可以獲取保存的圖像的路徑?

回答

2

對於頁面上的每個圖像,您可以收集其URL,然後調用WinINET緩存枚舉函數(例如FindFirstURLCacheEntry)以在Temporary Internet Files文件夾中查找支持緩存文件。但是,不能保證該文件將在緩存中,因爲它可能已經與禁止緩存的標頭交付等。

您可以考慮的一種方法是在您的FiddlerCore(www.fiddler2.com/core)中使用應用;然後你可以將所有傳輸的圖像「脫離線」,並隨意做任何你想做的事情。

相關問題