2010-04-02 33 views
10

Có thể lưu hình ảnh trong điều khiển webbroswer trực tiếp vào đĩa cứng mà không cần phải tải xuống lại từ internet không?lưu hình ảnh trong điều khiển trình duyệt web mà không cần tải xuống lại từ internet

Giả sử tôi điều hướng đến trang web có 15 hình ảnh. Tất cả chúng đều được xem trong trình duyệt web của tôi, nhưng làm thế nào tôi có thể lưu chúng ngay bây giờ mà không cần phải tải xuống chúng?

Trả lời

12

Đây là cách duy nhất tôi có thể tìm thấy. Tò mò nếu có ai khác có cách tốt hơn.

sao chép từ CodeProject

Bạn cần phải thêm một tham chiếu đến Microsoft.mshtml và dĩ nhiên là chờ đợi cho các tài liệu đề hoàn tất. Thao tác này sẽ lưu hình ảnh được tải trong thành phần System.Windows.Forms.WebBrowser webBrowser1 - ngay cả những hình ảnh bạn không muốn.


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 ... thanks for trả lời, tôi chỉ hy vọng rằng ai đó sẽ đưa ra một giải pháp khác, như tôi thực sự không thể sử dụng clipboard như thế ... – lebhero

+0

tốt nếu clipboard ngoài tầm kiểm soát, sau đó khác hơn là đi qua bộ nhớ cache, cách duy nhất khác có thể là tải xuống lại hình ảnh. Nhưng hãy xem những gì người khác tìm ra với – Asher

+1

Rất hữu ích. Có thể muốn thêm khả năng lưu và khôi phục dữ liệu clipboard cũ. 'var clipboardData = Clipboard.GetDataObject();' trước 'foreach' và' Clipboard.SetDataObject (clipboardData); 'sau' foreach'. – iCantSeeSharp

Các vấn đề liên quan