一直喜歡用【休眠】,但如果離開的時長有點尷尬,既不想開著機無謂耗電,又不想動用休眠傷硬碟,【睡眠】就成了一種合適的選擇。在XP/WIN7等桌面系統下,是可以很方便的進行睡眠/休眠操作的,開始菜單里點就是。但在伺服器系統下,比如win2k8r2,就不是那麼方便了,在開始菜單中找不到現成選項,我能想到的 ...
一直喜歡用【休眠】,但如果離開的時長有點尷尬,既不想開著機無謂耗電,又不想動用休眠傷硬碟,【睡眠】就成了一種合適的選擇。在XP/WIN7等桌面系統下,是可以很方便的進行睡眠/休眠操作的,開始菜單里點就是。但在伺服器系統下,比如win2k8r2,就不是那麼方便了,在開始菜單中找不到現成選項,我能想到的最便捷的辦法就是在桌面建個快捷方式,雙擊就執行睡或休。休眠的快捷方式容易建,命令行工具shutdown.exe直接支持休眠操作,將快捷方式的目標寫成如下就好:
%windir%\System32\shutdown.exe /h /f /t 0
但睡眠咋辦,網上搜到可以用rundll32調SetSuspendState這個API實現,根據MSDN,該API的第1個參數只要為0,就是睡眠模式,其餘倆參數隨意,所以按說只要寫成這樣即可:
%windir%\System32\rundll32.exe PowrProf.dll,SetSuspendState 0,0,0
但在我的電腦上跑,就是休眠,並非睡眠,嘗試過改動參數仍然如此。好在文檔里提到了另一個類似功能的API:SetSystemPowerState,根據MSDN,該API只有倆參數,第1個參數設為1是睡眠,第2個參數沒用,所以將快捷方式的目標寫成這樣:
%windir%\System32\rundll32.exe Kernel32.dll,SetSystemPowerState 1,0
一試就成,是我要的睡眠,問題搞掂。文檔中說該API後續可能被廢,建議改用上面的SetSuspendState~呵呵。
-文畢-