2012-08-11 22 views
10

के साथ विंडोज़ पर मंद स्क्रीन मैं अपने प्रोग्राम से विंडोज प्लेटफ़ॉर्म पर एक स्क्रीन को कम करने में देख रहा हूं। मुझे पता है कि एक SetMonitorBrightness API है जो इसे अनुमति देता है, लेकिन मेरे लिए यह मुद्दा यह है कि विंडोज XP पर स्क्रीन को मंद करने में सक्षम होना अच्छा होगा (जो कि एपीआई समर्थित नहीं है) और डेस्कटॉप कंप्यूटर पर मंद स्क्रीन भी।सी ++

इसलिए मैंने कुछ शोध किया और this utility पाया जो किसी समस्या के बिना Windows XP डेस्कटॉप पर मेरी स्क्रीन मंद हो रहा है। मैंने यह पता लगाने के लिए लेखक से संपर्क करने की कोशिश की कि उन्होंने मंदर को कैसे कार्यान्वित किया लेकिन मैंने उनसे वापस नहीं सुना।

तो मैं इस साइट पर डेवलपर्स से सुनने के लिए उत्सुक था, आपको लगता है कि जब वे SetMonitorBrightness API समर्थित नहीं हैं तो वे स्क्रीन को मंद करने में कैसे कामयाब रहे?

पीएस। मैं एक नौसिखिया डेवलपर हूं जो अपने छोटे व्यवसाय के लिए ऊर्जा बचत कार्यक्रम लिखने की कोशिश कर रहा हूं। यह एक गैर-लाभकारी संगठन है और हमारे पास ऐसा करने के लिए विंडोज डेवलपर को किराए पर लेने के लिए धन नहीं है। हमारे अधिकांश कंप्यूटर विंडोज एक्सपी डेस्कटॉप हैं, ताकि आप देख सकें कि मैं SetMonitorBrightness API का उपयोग नहीं कर सकता क्योंकि यह वेब पर व्यापक रूप से प्रलेखित है।

अग्रिम धन्यवाद।

उत्तर

3

अगर यह जानकारी पुरानी हो तो मुझे माफ़ कर दो, लेकिन मैंने इसे पहले से सेटडिवाइस गैमामा रैंप का उपयोग करके किया है। राज्य की बचत और पुनर्स्थापित करने के लिए 'गेट' संस्करण भी उपलब्ध है। मैंने इसे सी # कार्यक्रमों में उपयोग किया है, इसलिए यह अभी भी प्रासंगिक नहीं हो सकता है हालांकि अब भी बहुत आम नहीं है।

+0

बहुत अच्छा जोड़ा। धन्यवाद! मुझे इसे आजमाने की ज़रूरत है। मेरी एकमात्र चिंता यह है कि एपीआई का वर्णन कहता है, "सभी प्रत्यक्ष रंगीन वीडियो बोर्ड लोड करने योग्य गामा रैंप का समर्थन नहीं करते हैं।" – c00000fd

4

यदि आप उद्धृत करते हैं, तो निर्भरता वॉकर के साथ स्क्रीनसेवर पर नज़र डालें। मेरा अनुमान है कि वे एक पूर्ण स्क्रीन विंडो बनाते हैं और विंडो के लिए अर्ध-अपारदर्शी सेटिंग सेट करने के लिए SetLayeredWindowAttributes() का उपयोग करते हैं, इस प्रकार स्क्रीन मंद हो जाती है। मुझे संदेह है कि यह आपको बहुत पैसा बचाएगा।

आप DDC protocol पर देखना चाहते हैं जो आपको कुछ मॉनीटर के पहलुओं को नियंत्रित करने की अनुमति देता है। एमएस एपीआई जो आपको ऐसा करने की अनुमति देता है यहां राउंडबाउट मिल सकता है: http://msdn.microsoft.com/en-us/library/windows/hardware/ff570290%28v=vs.85%29.aspx और आपको I2C फ़ंक्शन भी देखना चाहिए।

वैकल्पिक रूप से आप http://www.nicomsoft.com/products/i2c/ जैसे डीडीसी सामान करने के लिए तैयार तैयार लाइब्रेरी की तलाश कर सकते हैं। उनके पास एक मंदर अनुप्रयोग भी है जो व्यक्तिगत उपयोग के लिए स्वतंत्र है और वाणिज्यिक उपयोग के लिए गैर-मुक्त है। यदि आप उनसे संपर्क करते हैं और एक गैर-लाभकारी संगठन के लिए समझाते हैं तो वे आपको मुफ्त में इसका उपयोग करने की अनुमति भी दे सकते हैं।

यदि आप इसे ऊर्जा बचत कार्यक्रम के रूप में करने की कोशिश कर रहे हैं तो स्क्रीनसेवर सेटिंग का उपयोग क्यों नहीं करते हैं जो मॉनिटर को एक निश्चित अवधि के बाद बंद कर देता है? किसी भी मामले में

+0

आपके इनपुट के लिए धन्यवाद। मैंने आपके द्वारा वर्णित SetLayeredWindowAttributes() का उपयोग करने के बारे में नहीं सोचा था। लेकिन गहरे (ब्लैकर) पिक्सेल को प्रदर्शित करने के लिए स्क्रीन को कम ऊर्जा का उपयोग करने की आवश्यकता नहीं होगी? – c00000fd

+0

अपने प्रश्न का उत्तर देने के लिए, मैं मॉनीटर को क्यों बंद नहीं करूँगा, हमारे पास एक विशेष सॉफ़्टवेयर है जो स्क्रीन पर दिखाई देने वाले डेटा को आउटपुट करता है, इस प्रकार मैं निष्क्रियता के मिनटों के बाद स्क्रीन को मंद करना चाहता था और फिर यदि कोई ऑपरेटर माउस को ले जाता है यह 100% पर वापस आ जाएगा। – c00000fd

+0

@ user843732: यह कम ऊर्जा का उपयोग कर सकता है, लेकिन एकमात्र तरीका जिसे आप निश्चित रूप से जानते हैं, उसे आजमाकर बिजली की खपत को मापना होगा। पिक्सेल की अस्पष्टता को बदलना जरूरी नहीं है कि बैकलाइट की चमक बदल जाए, जहां वह बहुत सारी शक्तियां आती हैं। चमक के साथ एक प्रदर्शन के बारे में सोचो और काले रंग भूरे दिखाई देते हैं। बहुत सी एलसीडी स्क्रीनों में केवल एक बैकलाइट चमक नियंत्रण होता है, कुछ खंडित होते हैं लेकिन कुछ (कोई नहीं?) प्रति पिक्सेल आधार पर होते हैं। आपके आवेदन के रूप में, दिलचस्प लगता है। आशा है कि आप इसे काम कर लेंगे। – tinman