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


63

मैं अपने विंडोज पीसी (विंडोज 7) को कमांड लाइन के माध्यम से एक नींद की स्थिति में रखना चाहता हूं (इसलिए मैं कीबोर्ड पर मैक्रो बटन से बांध सकता हूं)।

पीसी पर पावर बटन सेटअप है, लेकिन कंप्यूटर को सोने के लिए (लेकिन यह फर्श पर नीचे है और मैं नीचे तक पहुँचने के लिए बहुत आलसी हूं) यह बिल्कुल यही है कि मैं इसे कैसे चाहता हूं (यदि मैं ढीली शक्ति है तो हाइब्रिड मोड का उपयोग करके सोता हूं)

शटडाउन मेनू पर स्लीप कमांड भी काम करता है।

सबसे अधिक जानकारी मैंने पाया कि उपयोग करने के लिए कहते हैं;

%windir%\system32\rundll32.exe PowrProf.dll, SetSuspendState 0,1,0

लेकिन यह कंप्यूटर को हाइबरनेट मोड में रखता है। मेरे पास हाइबरनेट अक्षम है लेकिन हाइब्रिड नींद का उपयोग कर रहा है।

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


5
rundll32.exe PowrProf.dll,SetSuspendStateअनुशंसित नहीं है। यह खतरनाक है। (क्योंकि यह स्टैक को भ्रष्ट कर देता है, क्योंकि यह मांग किए गए फ़ंक्शन हस्ताक्षर का अनुपालन नहीं करता है । फिर अप्रत्याशित खराब चीजें हो सकती हैं, जैसा कि रेमंड चेन ने चेतावनी दी है ...)Rundll32
आरोन थोमा

संबंधित: superuser.com/questions/42124/…
Nayuki

जवाबों:


13

मुझे एक उपाय मिला। मैंने AutoHotKey नाम से एक फ्रीवेयर प्रोग्राम स्थापित किया और स्टार्ट मेनू -> स्लीप इन ए स्क्रिप्ट फ़ाइल को दर्ज करने के लिए चरण दर्ज किए। तब मैंने स्क्रिप्ट फ़ाइल को एक स्टैंड-अलोन एक्ज़ीक्यूटेबल स्लीपविन 7.exe में संकलित किया।

अब मैं केवल अपने कंप्यूटर को हाइब्रिड स्लीप में डालने के लिए SleepWin7.exe चलाता हूं।

आप AutoHotKey को अनइंस्टॉल कर सकते हैं अगर यह सब आपको इसके लिए चाहिए।


अद्यतन: उपर्युक्त समाधान तब काम नहीं करता है जब उपयोगकर्ता लॉग इन नहीं होता है, अर्थात विंडोज 7 लॉगिन स्क्रीन। (मेरा कंप्यूटर साप्ताहिक बैकअप करने के लिए प्रत्येक रविवार को सुबह 4 बजे उठता है, जो उपयोगकर्ता लॉगिन के बिना किया जाता है।) ऐसे मामले में, Wizmo कार्यक्रम अभी भी काम करता है:

wx10.exe चुप स्टैंडबाय!


3
यहाँ एक AutoHotKey स्क्रिप्ट (कीबोर्ड का उपयोग करके) है; Send, {LWINDOWN} {LWINUP} WinWait, Start menu, IfWinNotActive, Start menu, WinActivate, Start menu, WinWaitActive, Start मेनू, Send, {TAB} {UP} {RIGHT} s
Eric L

यह वह उपाय है जिसका मैंने उपयोग करके समाप्त किया। के रूप में यह संकर नींद का समर्थन करता है।
एरिक एल

+1 यह गंदा लगता है लेकिन यह काम करता है। मुझे अंतिम सेंड पार्ट को इसमें बदलना था: "सेंड, {राइट} {राइट} एस"। BTW मैंने आपको AHK की स्थापना रद्द करने की सिफारिश करने के लिए लगभग एक -1 दिया, क्योंकि यह अक्षम्य होगा :)
demoncodemonkey

मैंने इसे स्क्रिप्ट की शुरुआत में यह सुनिश्चित करने के लिए भी जोड़ा कि डेस्कटॉप विंडो में कमांड्स जाएं, और उन्हें गुम होने से बचाएं: WinActivate, ahk_class Progman
demoncodemonkey

1
विंडोज 8 पर स्विच करने के बाद, अब मैं NirCmd (बहुत हल्के वजन) का उपयोग कर रहा हूं और यह कंप्यूटर को हाइब्रिड नींद में रखता है; nircmd.exe standbyअधिक जानकारी यहाँ मिल सकती है -> nirsoft.net/utils/nircmd.html
एरिक एल

73

आशा है आपको ये उपयोगी लगेगी

बंद करना %windir%\System32\shutdown.exe -s

रीबूट %windir%\System32\shutdown.exe -r

लॉग ऑफ %windir%\System32\shutdown.exe -l

समर्थन करना %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Standby

सीतनिद्रा में होना %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate

सावधानी: rundll32.exe का उपयोग पॉवरप्रूफ .ll लॉन्च करने के लिए नहीं किया जाना चाहिए । इसके बजाय आपको सीधे SetSuspendState को कॉल करना चाहिए। यह पॉवर्सशेल का उपयोग करके किया जा सकता है - नीचे दी गई सामग्री के साथ एक फ़ाइल बनाएं जैसे कि sleep.ps1।

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

फिर इसे इस्तेमाल करके चलाएं powershell -File C:\your-path\sleep.ps1Set-ExecutionPolicy RemoteSignedपॉवरशेल स्क्रिप्ट को चलाने में सक्षम करने के लिए आपको पहले कमांड को चलाने की आवश्यकता हो सकती है ।

उपरोक्त स्क्रिप्ट एक सिस्टम सस्पेंड का कारण बनता है, जो आपके वर्तमान हाइबरनेट सेटिंग के आधार पर या तो सोएगा या हाइबरनेट करेगा। कमांड लाइन से उस सेटिंग को बदलने के लिए, कमांड लाइन से एडमिनिस्ट्रेटर के रूप में रन powercfg -h off(या on) करें।


4
वाह अच्छा है! +1 ...
studiohack

9
यह बहुत अच्छा है, लेकिन स्लीपीईईईईईपी के लिए एक कहां है
डेन्कोडायमिनीक

7
स्टैंडबाय शॉर्टकट ने मेरी Win7 मशीन को हाइबरनेट करने के लिए रखा :(
उपयोगकर्ता

5
@demoncodemonkey: Standbyyyyyyyyyyyyy = Sleeeeeeeeeeeeep :)
राज़्वान फ्लेवियस पांडा

11
जाहिरा तौर पर यह नहीं है: superuser.com/a/331545/21887 इसलिए इस पद्धति का उपयोग करना खतरनाक माना जाता है और अनुशंसित नहीं है। (यह स्टैक को भ्रष्ट करता है।)
हारून थोमा

16

Wizmo की मुफ्त उपयोगिता देखें , जो बहुत सारी चीजें कर सकता है।
आप जिस आदेश की तलाश कर रहे हैं वह संभवतः है:

wizmo स्टैंडबाय


Wizmo बहुत अच्छा लग रहा है! लगभग मुझे इच्छा है कि मैं एक मैक fanboy नहीं था
trolle3000

उपयोगिता को स्थापित करने की आवश्यकता नहीं है। अच्छा सरल उपकरण।
आर्टूर कार्वाल्हो

2
wizmo.exe quiet standbyयकीनन कष्टप्रद बीप्स को दबाता है wizmo.exe
हारून थोमा

14

आप एक्सटेंशन .ps1 (पावरशेल) के साथ एक फाइल बना सकते हैं, जैसे "sleep.ps1" और इसे लिखें:

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

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

$minutes = read-host "Enter minutes to wait until sleep";
$secs= 60*$minutes;
Start-sleep -s $secs

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

और अब जब मैं इसे चलाता हूं, तो मैं बस उन मिनटों में प्रवेश करता हूं जो मैं सोने तक इंतजार करना चाहता हूं।

आप इसे cmd लाइन से लिखकर चला सकते हैं

powershell -File C:\your-path\sleep.ps1

यदि आपने पहले कभी PowerShell स्क्रिप्ट नहीं चलाई है, तो आप पहले चलाना चाहेंगे

Set-ExecutionPolicy RemoteSigned

स्क्रिप्ट चलाने में सक्षम करने के लिए PowerShell में। इसे केवल एक बार चलाना है।


क्या आपके चर के नाम पीछे नहीं हैं?
उल्लालुलो

11

Sysinternals PsTools के साथ [ डाउनलोड ]:

psshutdown -d

कमांड लाइन उपकरण PsShutdown का उपयोग करना ।

(यदि आप पहले से ही PsTools डाउनलोड कर चुके हैं, तो आप इस समाधान को पसंद कर सकते हैं, यह बहुत व्यापक रूप से उपयोग किया जाता है। इसके अलावा, यह दृष्टिकोण उपयोग करने के बराबर है ।)wizmoquiet standby

स्रोत: https://superuser.com/a/331545/21887


7

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


SLEEP.EXE मेरे लिए विंडोज 7 प्रो SP1 पर काम करता है। पैरेंट पेज विंडोज के लिए कई अन्य उपयोगी दिखने वाले कमांड लाइन टूल को भी सूचीबद्ध करता है। धन्यवाद, @jjlin!
CODE-REaD

6

हाइबरनेट मोड को अक्षम करने के लिए आपको उपयोग करने की आवश्यकता है

powercfg -h off

अब, rundll32 powrprof.dll, SetSuspendState आपके स्टेशन को स्टेनबी मोड में डाल देगा

[संपादित करें]

वास्तव में मैं हाइब्रिड नींद के लिए सेटअप नहीं कर सकता क्योंकि मेरे पास एक लैपटॉप है (एक राज्य जो मोबाइल स्टेशनों पर उपलब्ध नहीं है), हाइब्रिड नींद के लिए आपको हाइबरनेशन सक्षम होना चाहिए और कुछ का कहना है कि rundll32 powrprof.dll, SetSuspendate डिफ़ॉल्ट नींद को ट्रिगर करता है अपने कंट्रोल-पैनल \ पॉवर-मैनेजमेंट सेटिंग्स में मोड। कृपया प्रयास करें अगर rundll32 powrprof.dll, SetSuspendState संकर नींद कुछ परिणाम दें।


यह हाइब्रिड नींद को भी निष्क्रिय कर देता है, इसलिए यह थोड़े से उद्देश्य को हरा देता है
एरिक एल

rundll32 powrprof.dll, SetSuspendState संकर नींद अभी भी कंप्यूटर को हाइबरनेशन में डालती है। विचार के लिए धन्यवाद।
एरिक एल

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

5

एक बैट फ़ाइल बनाएं, जहां 600 सेकंड में देरी हो।

पिंग -n 600 -w 1 127.0.0.1> nul

powercfg -h बंद

% विंडीर% \ System32 \ rundll32.exe powrprof.dll, SetSuspendState स्टैंडबाय


कंप्यूटर को सोने के लिए शानदार तरीका है, और किसी और को भेजना बहुत आसान है जो नींद को शेड करना चाहता है।
मॉरिश

रचनात्मक जवाब!
जेन पांडा

SetSuspendState को कॉल करने के लिए rundll32.exe का उपयोग न करें: यह उसके लिए डिज़ाइन नहीं किया गया है। स्पष्टीकरण यहाँ
सर्गेईट

4

यदि आप एक .NET प्रोग्राम को कंपाइल करने में सक्षम हैं, तो निम्न कमांड ऐसा करेगा

System.Windows.Forms.Application.SetSuspendState(PowerState.Suspend, 
                                                 false,   /* force */
                                                 true     /* disableWake */);

नोट: आपको हाइबरनेशन को अक्षम करने की आवश्यकता नहीं है जैसा कि rundll32 powrprof.dll,SetSuspendStateकमांड द्वारा आवश्यक है । PowerState.Hibernateयदि आप चाहें तो मशीन को हाइबरनेट भी कर सकते हैं।

आप इस आदेश के साथ Visual Studio के किसी भी संस्करण के साथ आसानी से एक EXE संकलित कर सकते हैं । बस एक कंसोल एप्लिकेशन बनाएं और System.Windows.FormsDLL का संदर्भ जोड़ें ।


1
मूल रूप से ऊपर उल्लिखित Wizmo ने पहले ही ऐसा कर लिया है - इसका उपयोग करना समकक्ष के समान लगता है। और यह स्टीव गिब्सन द्वारा लिखा गया है और नि: शुल्क है, इसलिए शायद उसी चीज़ से बेहतर है जो मुझे हाथ से कोडिंग करना होगा!
स्टेवमिडगले

+1। कुछ इस तरह की खोज यहाँ superuser.com/q/310045/84229
उपयोगकर्ता

आपको Visual Studioसंकलन करने के लिए उपयोग करने की आवश्यकता नहीं है । इसके बजाय, कमांड-लाइन कंपाइलर csc.exeका उपयोग किया जा सकता है। यह पहले से ही विंडोज के सभी आधुनिक संस्करणों में स्थापित है।
सर्गेईट जूल 26'16
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.