मैंने एक प्रोग्राम लिखा है जो डेस्कटॉप वॉलपेपर पर डेस्कटॉप वॉलपेपर पर विजेट पेंट करता है, और सब अच्छा था। लेकिन मैं एक अजीब बग प्रकट करता हूं - मेरा प्रोग्राम कुछ अन्य कंप्यूटरों पर काम नहीं करता था - वे प्रदर्शित करते समय विजेट के बिना एक ही डेस्कटॉप प्रदर्शित करते हैं।ड्राइंग
तो, क्या किसी के पास इस क्षेत्र में कोई ज्ञान है, कुछ ज्ञान है? कृपया मेरी मदद करें! :)
(मुझे कोई कंप्यूटर नहीं मिल रहा है, जहां विजेट काम नहीं करता है, मेरे कंप्यूटर में सभी अच्छी तरह से काम करते हैं। मैंने कई परीक्षण कार्यक्रम लिखे हैं, जिनकी कोशिश डेस्कटॉप पर कुछ भी तरीकों से खींचती है, लेकिन परीक्षण अपने दोस्तों कंप्यूटर में भी कुछ नहीं प्रदर्शित करता है)
आहरण विधि:।
मैं एक DLL, जो डेस्कटॉप विंडो (progman-> बच्चे के> बच्चे)) पाता है और एक हुक बनाता है और के लिए स्वयं की विंडो प्रक्रिया स्थापित लिखा था डेस्कटॉप। खिड़की प्रक्रिया में मैं WM_ERASEBKGND हुक:
case WM_ERASEBKGND:
HDC hdc = (HDC)wparam;
PaintDesktop(hdc);
WidgetPaint(hdc);
return 1;
// मैं इस कोड हो रही है और तेजी से ड्राइंग के लिए कतरन क्षेत्रों की स्थापना में छोड़ दें। (मैंने क्लिपिंग और क्लिपिंग के बिना सभी संयोजनों की कोशिश की)
और परीक्षणों में मैं भी उसी परिणाम के साथ WM_PAINT संदेश में विजेट पेंट करने का प्रयास कर रहा हूं - सभी पहले से ही मेरे काम करते हैं, लेकिन मेरे सभी दोस्तों पर काम नहीं करता है।
अद्यतन: मैंने इसे हल किया! :)
क्या आपका कोड विंडोज एक्सपी और * नहीं * विंडोज विस्टा या विंडोज 7 में काम करता है? – MusiGenesis
हां, मेरा कोड एक्सपी और विंडोज विस्टा में काम करता है। लेकिन विंडोज 7 में काम नहीं करता है। मुझे लगता है कि, विंडोज 7 में, इसकी सुरक्षा तंत्र है। (मैं DLLs को भी सूचीबद्ध नहीं कर सकता जो एक्सप्लोरर.एक्सई प्रक्रिया में लोड होता है) – vsvasya
जिज्ञासा से, क्या तय किया गया था? – Brian