2009-12-24 100 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