2010-04-02 9 views
10

क्या वेबबॉसर नियंत्रण में छवियों को सीधे हार्ड डिस्क पर सहेजना संभव है, बिना इंटरनेट से उन्हें डाउनलोड करने की आवश्यकता के?इंटरनेट से उन्हें फिर से लोड किए बिना वेबब्रोसर नियंत्रण में छवियों को सहेजें

मान लें कि मैं ऐसी वेबसाइट पर नेविगेट करता हूं जिसमें 15 छवियां हैं। वे सभी मेरे वेब ब्राउजर में देखे जाते हैं, लेकिन अब उन्हें डाउनलोड करने की ज़रूरत के बिना मैं उन्हें कैसे बचा सकता हूं?

उत्तर

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

+0

अच्छी तरह से करता है, तो क्लिपबोर्ड अन्य बंद है सीमा, तो कैश के माध्यम से जाने से, छवि को फिर से डाउनलोड करने का एकमात्र अन्य तरीका हो सकता है। लेकिन देखते हैं कि अन्य – Asher

+1

के साथ क्या आते हैं बहुत उपयोगी। पुराने क्लिपबोर्ड डेटा को सहेजने और पुनर्स्थापित करने की क्षमता जोड़ना चाह सकता है। 'var clipboardData = Clipboard.GetDataObject();' foreach' से पहले और 'क्लिपबोर्ड .etDataObject (क्लिपबोर्डडेटा);' foreach' के बाद। – iCantSeeSharp

संबंधित मुद्दे