Scripting Python在计算机睡眠/休眠后冻结

Scripting Python在计算机睡眠/休眠后冻结,scripting,background,sleep,freeze,pythonw,Scripting,Background,Sleep,Freeze,Pythonw,我有一个pythonw在后台运行的python脚本。如果我关闭笔记本电脑,它将进入睡眠模式。当我打开笔记本电脑时,我的程序几乎没有什么功能,几秒钟后就会冻结。我的脚本有没有办法判断我的电脑是否进入睡眠模式,这样当我重新打开笔记本电脑时,它就可以处于休眠状态并重新启动 您可以捕获包含PBT\u APMQUERYSUSPEND事件的WM\u POWERBROADCAST窗口消息。要在Python程序中捕获此消息,可以创建新的不可见窗口,并使单独的线程重复调用GetMessage 在最坏的情况下,您可

我有一个pythonw在后台运行的python脚本。如果我关闭笔记本电脑,它将进入睡眠模式。当我打开笔记本电脑时,我的程序几乎没有什么功能,几秒钟后就会冻结。我的脚本有没有办法判断我的电脑是否进入睡眠模式,这样当我重新打开笔记本电脑时,它就可以处于休眠状态并重新启动

您可以捕获包含PBT\u APMQUERYSUSPEND事件的WM\u POWERBROADCAST窗口消息。要在Python程序中捕获此消息,可以创建新的不可见窗口,并使单独的线程重复调用GetMessage

在最坏的情况下,您可以仅使用ctypes归档所有这些,但也可以使用,有时称为win32py。

您可以捕获包含PBT\u APMQUERYSUSPEND事件的WM\u POWERBROADCAST窗口消息。要在Python程序中捕获此消息,可以创建新的不可见窗口,并使单独的线程重复调用GetMessage


在最坏的情况下,您可以仅使用ctypes对所有这些进行归档,但也可以使用,有时称为win32py。

Windows Vista SP1 64位Python 2.6以32位模式编译Windows Vista SP1 64位Python 2.6以32位模式编译此Python编程作为服务运行时,此功能仅适用于GUI。通过在服务中运行的线程中调用GetMessage,同样的事情也会起作用吗?@user204088,这取决于。您可以为您的服务启用交互式用户,这样您就可以直接创建不可见窗口,但这需要控制台用户登录;或者使用RegisterServiceCtrlHandlerEx并在HandlerEx中侦听SERVICE\u CONTROL\u POWEREVENT。这仅适用于GUI,因为python编程是作为服务运行的。通过在服务中运行的线程中调用GetMessage,同样的事情也会起作用吗?@user204088,这取决于。您可以为您的服务启用交互式用户,这样您就可以直接创建不可见窗口,但这需要控制台用户登录;或者使用RegisterServiceCtrlHandlerEx并在HandlerEx中侦听SERVICE\u CONTROL\u POWEREVENT