विंडोज 7 में बैच फ़ाइल के माध्यम से एक कंप्यूटर सो रहा है


14

मैं एक बैच फ़ाइल बनाना चाहता हूं जो कुछ समय के बाद मेरे कंप्यूटर पर सो जाएगी।

निकटतम चीज़ जो मैंने पाया है वह स्टैंडबाय में रख रहा है, लेकिन मेरे कीबोर्ड पर स्लीप बटन की तुलना में अलग काम करता है (अब बूटअप, माउस क्लिक पर नहीं जगा)। कोई विचार? क्या यह पायथन या C # में आसान होगा?

ऊपर उल्लिखित कम आदर्श तकनीक इसे cmd प्रॉम्प्ट में कह रही है:

Rundll32.exe powrprof.dll,SetSuspendState

बस .bat में एक उलटी गिनती भाग जोड़ें और उसके बाद इसे निष्पादित करें।
अपाचे

की डुप्लीकेट की तरह दिखता है superuser.com/questions/83437/...
अकीरा

हाइबरनेशन पूरी तरह से अलग है, लेकिन हाँ मुझे लगता है कि सही समाधान है।
अपाचे

मेरा मानना ​​है कि रंडेल चीज हाइबरनेशन जैसी ही होती है। नींद के साथ, आप माउस को क्लिक करते हैं और आपकी लॉगिन स्क्रीन एक दो सेकंड में होती है ... हाइबरनेशन में बायोस, हार्डड्राइव को रीचेक करना होता है, और सेव्ड स्टेट को हार्डड्राइव से रैम और फिर बूट विंडो में ट्रांसफर करना होता है। सोने का एकमात्र दोष यह है कि यदि आप शक्ति खो देते हैं और रैम में संग्रहीत सहेजा गया राज्य खो जाता है (और पुराने पीसी वास्तव में पीएसयू और प्रशंसकों की तरह अधिक घटकों को छोड़ देते हैं)।
साबिन

जवाबों:


26

बस आज्ञा

rundll32.exe powrprof.dll,SetSuspendState

क्या सिस्टम हाइबरनेट करता है , लेकिन अगर आप इसे लिखते हैं:

rundll32.exe powrprof.dll,SetSuspendState 0,1,0

और कमांड के साथ हाइबरनेशन बंद करें :

powercfg -hibernate off

अब आपका सिस्टम सो जाएगा, और माउस चाल पर उठ जाएगा यदि इसके लिए एक उपकरण का चयन किया गया है (कैसे जानने के लिए नीचे स्क्रॉल करें)।

एक टाइमर बैच:

timeout /t 1200
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

जहां 1200 सेकंड है, जिसका मतलब है कि 20 मिनट बैच नींद की कमान चलाएगा।

वैकल्पिक रूप से आप उलटी गिनती को रोक सकते हैं (यदि आप बैच विंडो में कोई भी कुंजी दबाते हैं):

timeout /t 1200 /nobreak
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

माउस के साथ जागने के बारे में थोड़ा HOWTO:

पर जाएँ: प्रारंभ -> नियंत्रण कक्ष -> माउस।

वैकल्पिक शब्द

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

वैकल्पिक शब्द

अब अपने माउस के लिए गुण विंडो में, सामान्य टैब पर सेटिंग्स बदलें बटन पर क्लिक करें ।

वैकल्पिक शब्द

खुलने वाली विंडो में, पावर प्रबंधन टैब पर क्लिक करें और इस उपकरण को कंप्यूटर को जगाने के लिए शीर्षक वाले विकल्प की जांच करें । क्लिक करें ठीक इस विंडो पर बटन पर क्लिक करें ठीक बटन पर माउस गुण खिड़कियों अभी भी खुला है कि। अब से, आप माउस बटन पर क्लिक करके या माउस को घुमाकर विंडोज 7 को स्लीप मोड से जगा सकते हैं।

वैकल्पिक शब्द


3
वाह यार, तुम सच में सवालों का जवाब देना पसंद करते हो :)
Omu


2

काम कर रहे समाधान!
मुझे PsShutdownउचित नींद की अनुमति देने के लिए उपयोगिता का उपयोग करना पड़ा (प्राथमिक मुद्दा SetSuspendStateमशीन को जगाने की अनुमति नहीं देता है)। सोने के लिए मेरी बैच फ़ाइल 1 सरल रेखा है:

PsShutdown -d -t 2

कृपया पढ़ें कि मैं कुछ युक्तियों के लिए सॉफ्टवेयर की सिफारिश कैसे करूं कि आपको सॉफ्टवेयर की सिफारिश करने के बारे में कैसे जाना चाहिए। आपको कम से कम एक लिंक प्रदान करना चाहिए, सॉफ़्टवेयर के बारे में कुछ अतिरिक्त जानकारी और प्रश्न में समस्या को हल करने के लिए इसका उपयोग कैसे किया जा सकता है।
DavidPostill

1
यह मेरे पीसी में काम नहीं किया ...
mrbengi

1

बचाव के लिए .NET। इस समाधान ने कंप्यूटर को पीसी कॉन्फ़िगरेशन बदलने (हाइबरनेशन बंद करने) की आवश्यकता के बिना सोने के लिए रखा। इस कमांड को बैच में चलाएं:

powershell.exe -command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Application]::SetSuspendState([System.Windows.Forms.PowerState]::Suspend, $false, $false)"

आप या तो ::Suspendनींद के लिए उपयोग कर सकते हैं , या ::Hibernate(जिस तरह से अन्य उत्तर काम करते हैं)। SetSuspendState के लिए प्रलेखन

जैसा कि System.Windows.Formsनाम स्थान डिफ़ॉल्ट रूप से लोड नहीं किया गया है (यह Powershell ISE में होता है), आपको पहले उसके लिए असेंबली लोड करना होगा।

मूल उत्तर


0

आप हाइबरनेट को अक्षम करने से बचने के लिए SetSystemPowerState की कोशिश कर सकते हैं।

rundll32.exe kernel32.dll, SetSystemPowerState

ध्यान दें कि 1,0 या 1 0 को जोड़ना या यहां तक ​​कि Rundll32.exe powrprof.dll, SetSuspendState 0 0 1 या Rundll32.exe powrprof.dll, SetSuspendState 0,0,1 का अर्थ है कि तर्क (0,0,1) का अर्थ NOTHING है।

Powrprof.dll, SetSuspendState rundll32 शैली के तर्कों को पार्स नहीं करता है और इस प्रकार उन्हें अनदेखा करता है। यही कारण है कि आपको हाइबरनेट को अक्षम करना होगा।


1
यह Windows XP के लिए उपयोगी है, विस्टा या बाद में नहीं।
रॉडने

1
ध्यान दें कि rundll32 आपके द्वारा दिए गए तर्कों को अनदेखा करता है (इसलिए क्यों SetSuspendState हमेशा हाइबरनेट करता है) क्योंकि DLL rundll32 से तर्कों को स्वीकार करने के लिए डिज़ाइन नहीं किया गया है।
रॉडने

-1: यह एकमुश्त गलत है। यह ओपी के वांछित ऑपरेटिंग सिस्टम के तहत काम नहीं करता है।
nc4pk

rundll32 तर्कों को पारित नहीं कर रहा है, इसलिए आपको इसे काम करने के लिए हाइबरनेट को अक्षम करना होगा। डिफ़ॉल्ट आर्ग हमेशा इसे हाइबरनेट करने के लिए कहता है, लेकिन अगर हाइबरनेट को निष्क्रिय किया जाता है तो सोने के लिए डीएलएल एपीआई डिफॉल्ट होता है।
रॉडने

0

इस सवाल का जवाब पहले ही दिया जा चुका है।

powercfg -h off & start / min "" C: \ WINDOWS \ System32 \ rundll32.exe PowrProf.dll, SetSuspendState 0,1,0 और पिंग -n 3 127.0.0.1 - nul और powercfg -h चालू और बाहर निकलें

निम्नलिखित देखें:

आपके कंप्यूटर को सोने के लिए उपयोग करने के लिए कमांड क्या है (हाइबरनेट नहीं)?


1
यदि आप मानते हैं कि यह प्रश्न एक डुप्लिकेट है, तो इसे इस तरह से फ़्लैग करने के लिए स्वतंत्र महसूस करें।
मूसा

0

बस एक बैच फ़ाइल बनाएँ और निम्नलिखित पंक्तियाँ डालें:

7200 = 2 hours

@echo off
timeout /t 7200 /nobreak
powercfg -h off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
powercfg -h on
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.