2010-08-13 14 views
5

विंडोज़ लॉक होने पर मैं डेस्कटॉप का स्क्रीनशॉट लेना चाहता हूं (विन + एल के साथ)। मानक तरीके एक ब्लैक स्क्रीन बनाते हैं, पिक्सेल के कोड के साथ:विंडोज लॉक होने पर डेस्कटॉप का स्क्रीनशॉट लें (विन + एल)

COLORREF color = GetPixel(hdc, x, y); 

बराबर -1। न तो एक उपयोगकर्ता मोड प्रोग्राम और न ही एक सेवा एक उपयोगी छवि पर कब्जा कर सकता है। कोई विचार?

+0

क्या आप डेस्कटॉप की एक छवि प्राप्त करने की कोशिश कर रहे हैं जो इसे अनलॉक किए जाने पर प्रदर्शित किया जाएगा, या लॉक स्क्रीन का शॉट स्वयं ही होगा? – RBerteig

+0

यदि मैं अनलॉक करता हूं तो प्रदर्शन के स्क्रीनशॉट लेने की कोशिश कर रहा हूं, विनलॉगन का स्क्रीनशॉट मुझे रूचि नहीं देता है) –

उत्तर

2

GetPixel और BitBlt काम नहीं करेगा जब डेस्कटॉप मॉनिटर पर शारीरिक रूप से प्रदर्शित नहीं होता है।

आपके पास PrintWindow के साथ व्यक्तिगत विंडो कैप्चर करने में कुछ भाग्य हो सकता है। हालांकि, सभी अनुप्रयोग PrintWindow को उसी तरह से कॉल नहीं करते हैं, इसलिए आप ग्लिच और/या ब्लैकनेस देख सकते हैं। आपको प्रत्येक विंडो को व्यक्तिगत रूप से कैप्चर करने की भी आवश्यकता होगी।

+0

मैं आपको सही ढंग से समझता हूं: आप एक चक्र व्यवस्थित करने और हर विंडो की स्क्रीनशॉट बनाने का सुझाव देते हैं? यदि मैं HWND पैरामीटर बराबर 0 का उपयोग करूंगा, तो यह डीसी को सभी डेस्कटॉप पर कॉपी करेगा? सभी के बावजूद, धन्यवाद। –

+0

यह डेस्कटॉप को आपकी पसंद के 'एचडीसी' में पेंट करने के लिए कहेंगे, जो मुझे लगता है कि आपको उपयोगकर्ता के वॉलपेपर की एक प्रति और संभवतः उनके आइकन मिलते हैं। –

+0

Anticreativshik, क्या आपको कोई परिणाम मिला? –

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