2010-04-20 282 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工作(无论你什么传递作为参数,它总是转到休眠 - 永不待机)。至少这就是发生在我身上的事情,从我在线阅读的内容来看,我并不是唯一一个。