Win7 पर चलने वाले एक सी ++ प्रोग्राम में, क्या माउस सेविंग या ऐसा कुछ नकली करने का तरीका है, बस स्क्रीन सेवर को शुरू करने से रोकने के लिए और सिस्टम सोने जा रहा है? मैं न्यूनतम दृष्टिकोण की तलाश में हूं और मैं .NET का उपयोग नहीं करना पसंद करता हूं। धन्यवाद, -nuunमैं अपने प्रोग्राम निष्पादन के दौरान स्क्रीन सेवर को कैसे रोकूं और सो सकता हूं?
उत्तर
स्क्रीनसेवर सेटिंग में उलझे नहीं, SetThreadExecutionState का उपयोग करें।
प्रणाली है कि यह उपयोग में है, जिससे नींद में प्रवेश करने या प्रदर्शन को बंद करने से सिस्टम को रोकने सूचित करने के लिए एक आवेदन सक्षम बनाता है: इस तथ्य यह है कि आपके आवेदन सक्रिय है या खिड़कियों को सूचित करने के लिए एपीआई है जबकि एप्लिकेशन चल रहा है।इस तरह के वीडियो खिलाड़ियों और प्रस्तुति अनुप्रयोगों के रूप में
, और
मल्टीमीडिया अनुप्रयोगों,, ES_DISPLAY_REQUIRED का उपयोग करना चाहिए, जब वे समय की लंबी अवधि के लिए प्रदर्शन वीडियो उपयोगकर्ता इनपुट के बिना
SetThreadExecutionState() सिस्टम को नियंत्रित करने और नींद प्रदर्शित करने के लिए बहुत अच्छा है, लेकिन यह स्क्रीन सेवर लॉन्च होने से नहीं रोकता है। कम से कम फंक्शन डॉक्टर कहते हैं कि यह नहीं होगा। – naor
सुधार: हालांकि इस फ़ंक्शन के लिए एमएसडीएन पृष्ठ बताता है कि "यह फ़ंक्शन स्क्रीन सेवर को निष्पादित करने से नहीं रोकता है।" ES_DISPLAY_REQUIRED के साथ कॉल करना वास्तव में स्क्रीन सेवर को ट्रिगर करने से रोकता है। – naor
यदि आप .NET - http://pinvoke.net/default.aspx/kernel32.SetThreadExecutionState का उपयोग कर रहे हैं तो यह जाने का तरीका भी है (पी/इनवॉक के माध्यम से) –
मुझे यकीन नहीं है कि आपको इसका सहारा क्यों लेना चाहिए। पावर सेटिंग में इन विकल्पों को अक्षम करना सरल होगा।
आप ऐसा करके क्या हासिल करने की कोशिश कर रहे हैं। क्या आपका आवेदन एक सेवा है। यदि ऐसा है तो आपको इसके बारे में परेशान करने की आवश्यकता नहीं है।
यदि आपका एप्लिकेशन यूआई एप्लीकेशन है तो भी मैं वैध उपयोग केस के बारे में सोच नहीं सकता।
किसी भी तरह हमें अधिक जानकारी चाहिए।
का कहना है कि यह एक ऐसे गेम के दौरान खेला जाने वाला एक लंबा ऑटोप्ले है जहां उपयोगकर्ता इनपुट की आवश्यकता नहीं है, आप नहीं चाहते हैं कि स्क्रीनसेवर आपके उपयोगकर्ता को परेशान करे – gldraphael
यह आमतौर पर खराब विचार है। डेस्कटॉप आपके आवेदन के उपयोगकर्ता से संबंधित है, आपका आवेदन नहीं है।
अगर मैं अपने स्क्रीन सेवर को अक्षम कर रहा था (या मेरे डेस्कटॉप आइकनों के चारों ओर स्थानांतरित हो गया था या अपने स्वयं के त्वरित एक्सेस टूलबार में खुद को जोड़ा गया था), तो यह मेरे कान पर बहुत जल्दी फेंक दिया जाएगा।
और, यदि आप हैं उपयोगकर्ता, अपने आवेदन में यह नहीं है। इसे हमारे बाकी हिस्सों की तरह मैन्युअल रूप से बदलें :-)
यदि आप यह करना चाहते हैं (और मैं आपको आग्रह करता हूं कि आप ऐसा न करें, लेकिन आप इसे अनदेखा कर सकते हैं), मुझे नहीं लगता कि विधि बदल गई है NT। आप व्यवहार को बदलने के लिए SPI_SETSCREENSAVEACTIVE
के साथ SystemParametersInfo
का उपयोग करें। ये स्मृति से user32.dll
में हैं।
लेकिन मैं Win7 के तहत है कि विधि का उपयोग कर के साथ सूचित समस्याओं को देखने का एक अस्पष्ट याद है और मुझे लगता है कि समाधान एक रजिस्ट्री परिवर्तन किया गया है 0
(और वापस करने के लिए 1
काम पूरा हो जाने) के लिए HKEY_CURRENT_USER\Control Panel\Desktop
तहत ScreenSaveActive
की स्थापना।
कहें कि यह एक लंबे * ऑटोप्ले * है जहां एक गेम के दौरान खेला जा सकता है जहां उपयोगकर्ता इनपुट की आवश्यकता नहीं है, आप नहीं चाहते कि स्क्रीनसेवर आपके उपयोगकर्ता को परेशान करे – gldraphael
खराब विचार? मीडिया प्लेयर के बारे में क्या? –
एक बुरा विचार नहीं है यही कारण है कि, किसी भी सभ्य मीडिया प्लेयर यह ... देखो करता Win32 एपीआई में SystemParametersInfo(SPI_SETSCREENSAVEACTIVE ...)
समारोह के लिए, यह चाल करना चाहिए।
ऐसा नहीं है कि मीडिया प्लेयर क्या करते हैं। मेरा जवाब देखें –
- 1. मैं अपने पर्ल सीजीआई प्रोग्राम को कैसे बना सकता हूं?
- 2. एंड्रॉइड अक्षम स्क्रीन सेवर
- 3. सामान्य प्रोग्राम के निष्पादन के दौरान एफ #
- 4. कोई प्रोग्राम अपने निष्पादन योग्य को कैसे हटा सकता है
- 5. GUID को टालने के दौरान मैं अपने HTML को शोषक होने से कैसे रोकूं?
- 6. मैं निष्पादन योग्य जावा प्रोग्राम कैसे बना सकता हूं?
- 7. विकास के दौरान मैं अपने ऐप के आकार को कैसे बता सकता हूं?
- 8. मैं अपने एचटीएमएल और सीएसएस को कैसे सुधार सकता हूं?
- 9. मैं प्रोग्राम को एक प्रोग्राम को कैसे हटा सकता हूं?
- 10. डेल्फी में स्क्रीन सेवर पूर्वावलोकन कैसे बनाएं?
- 11. मैं सेलेरी कार्यों के निष्पादन को कैसे रोक सकता हूं?
- 12. लिनक्स स्क्रीन सेवर कैसे विकसित करें
- 13. निष्पादन के दौरान मैं कैसे रोकूं, राज्य को सहेजूं, और बाद में उसी बिंदु से जारी रहूं?
- 14. मैं अपने प्रोग्राम डिज़ाइन और समस्या निवारण तकनीक को कैसे सुधार सकता हूं?
- 15. मैं जावा प्रोग्राम के लिए .exe कैसे बना सकता हूं?
- 16. मैं स्क्रिप्ट के निष्पादन समय को कैसे माप सकता हूं?
- 17. मैं पाइथन और पीईक्यूटी के साथ अपने जीयूआई प्रोग्राम का परीक्षण कैसे कर सकता हूं?
- 18. मैं System.Data.SQLite को एक एकल निष्पादन योग्य प्रोग्राम में कैसे विलय कर सकता हूं?
- 19. मैं अपने प्रोग्राम
- 20. मैं अपने विभाजित बफर बदलने से Emacs को कैसे रोकूं?
- 21. सभी के बारे में प्रोफाइलिंग क्या है और मैं अपने जावा प्रोग्राम को कैसे प्रोफाइल कर सकता हूं?
- 22. परीक्षण के दौरान स्क्रीन कैप्चर
- 23. मैं अपने निष्पादन योग्य में जानकारी कैसे संग्रहीत कर सकता हूं .Net
- 24. मैं बैनर छवि को कैसे एम्बेड करूं और अपने सेटअप प्रोजेक्ट में प्रोग्राम प्रोग्राम हटाएं?
- 25. मैं पर्ल और पायथन को प्रोग्राम की प्रत्येक पंक्ति को कैसे निष्पादित कर सकता हूं?
- 26. मैं जावास्क्रिप्ट फ़ंक्शन को कैसे रोकूं, रोकूं या मारूं?
- 27. मैं अपने PHPUnit + DBUnit परीक्षण सूट निष्पादन को कैसे बढ़ा सकता हूं?
- 28. निष्पादन प्रोग्राम
- 29. मैं कोई प्रोग्राम कैसे चला सकता हूं?
- 30. मैं अपने आईएडी बैनर को स्क्रीन के नीचे कैसे दिखूं?
क्यों क्या आप स्क्रीन सेवर सेटिंग या अपनी सिस्टम पावर सेटिंग नहीं बदलते हैं? –
आपके प्रोग्राम के उपयोगकर्ता के रूप में, _I_ खुद को तय करना चाहता हूं कि क्या मैं कुछ स्क्रीन सेवर द्वारा प्रोग्राम के निष्पादन को धीमा करना चाहता हूं। यदि आप अपने स्वयं के उपयोगकर्ता हैं, तो आप हमेशा सिस्टम की सेटिंग्स को हमेशा बदल सकते हैं। – sbi
असल में यह वैध प्रश्न है। मुझे लगता है कि विंडोज मीडिया प्लेयर वीडियो चलाते समय ऐसा करता है और फिर यह उचित होता है (आप हर पांच मिनट तक खड़े नहीं रहना चाहते हैं और अपनी मूवी का आनंद लेने के लिए बस अपना माउस ले जाना चाहते हैं, है ना? स्क्रीन सेवर को सिर्फ एक को देखने के लिए अक्षम करना फिल्म ओवरकिल है)। – Tomek