2009-12-24 149 views
2

我有一个pythonw在后台运行的python脚本。如果我关闭笔记本电脑,它会进入睡眠模式。当我打开我的笔记本电脑时,我的程序几乎没有功能,几秒钟后就冻结了。有没有什么方法可以让我的脚本知道我的电脑是否进入睡眠模式,以便在我重新打开笔记本电脑时可以休眠并重新启动?Python在计算机休眠/休眠后死机

+0

哪个操作系统? – wallyk 2009-12-24 20:42:06

+0

在32位模式下编译的Windows Vista SP1 64位Python 2.6 – user235024 2009-12-31 04:35:35

回答

0

您可以在其中捕获WM_POWERBROADCAST窗口消息,其中包含PBT_APMQUERYSUSPEND事件。要在Python程序中捕获此消息,您可以创建新的不可见窗口并分别重复调用GetMessage()

在最坏的情况下,您可以通过仅使用​​来实现所有这些,但您也可以使用pywin32,有时也称为win32py

+0

这只适用于GUI,因为此python编程作为服务运行。通过在服务中运行的线程中调用GetMessage()可以达到同样的效果吗? – user204088 2014-10-10 14:33:23

+0

@ user204088,这取决于。您可以为您的服务启用交互式用户,这样您就可以直接创建隐形窗口,但这需要控制台用户登录;或者使用'RegisterServiceCtrlHandlerEx'并在'HandlerEx'中监听'SERVICE_CONTROL_POWEREVENT' – toriningen 2014-10-10 19:26:01