2010-04-20 212 views

回答

4

我也去用命令行:

import os 
os.system(r'%windir%\system32\rundll32.exe powrprof.dll,SetSuspendState Hibernate') 
2

win32api.ExitWindowsEx() ActiveState的文檔。

的標誌:http://msdn.microsoft.com/en-us/library/aa376868%28v=vs.85%29.aspx

爲hybernate /睡眠:
http://msdn.microsoft.com/en-us/library/aa373201%28v=vs.85%29.aspx
使用這一個你需要使用​​因爲貌似pywin32沒有實現它。

喚醒?我懷疑你可以在睡覺時執行代碼。 :)

+0

對於喚醒記住有WakeUpOnLAN,所以從另一個設備(手機,平板電腦)應該是可能的。 – Radu 2014-01-06 12:45:29

1

不幸的是,我的聲譽不允許我評論答案(還)。但我來到這裏尋找替代,因爲我試圖避免使用命令行,所以我只能這樣說:我不認爲直接調用SetSuspendState是答案。

看看這裏是有原因的: http://blogs.msdn.com/b/oldnewthing/archive/2004/01/15/58973.aspx (短版:不好的事情可能會發生長版:意外的函數簽名破壞堆棧)。

如果您需要另一個原因,它似乎只是......不是在Win7工作(無論你什麼傳遞作爲參數,它總是轉到休眠 - 永不待機)。至少這就是發生在我身上的事情,從我在線閱讀的內容來看,我並不是唯一一個。