2009-12-24 3 views
2

pythonw를 사용하여 백그라운드에서 실행중인 python 스크립트가 있습니다. 랩톱을 닫으면 절전 모드가됩니다. 랩톱을 열면 프로그램의 기능이 거의없고 몇 초 후에 멈 춥니 다. 내 컴퓨터가 절전 모드로 전환되는지 여부를 알 수있는 방법이 있습니까? 예를 들어 휴면 모드로 들어가서 랩톱을 다시 열 때 다시 시작할 수 있습니까?컴퓨터가 잠자기/최대 절전 모드가 된 후 Python이 멈 춥니 다

+0

어떤 운영 체제입니까? – wallyk

+0

Windows Vista SP1 64 비트 Python 2.6 (32 비트 모드에서 컴파일) – user235024

답변

0

PBT_APMQUERYSUSPEND 이벤트가 포함 된 WM_POWERBROADCAST 창 메시지를 잡을 수 있습니다. 파이썬 프로그램 내에서이 메시지를 잡으려면 새로운 보이지 않는 창을 만들고 별도의 스레드를 반복적으로 호출하여 GetMessage()을 호출 할 수 있습니다.

최악의 경우 ctypes 만 사용하여이 모든 것을 달성 할 수 있지만 pywin32 (win32py라고도 함)을 사용할 수도 있습니다.

+0

이 서비스는 Python 프로그래밍이 서비스로 실행되므로 GUI에서만 작동합니다. 서비스 내에서 실행되는 스레드에서 GetMessage()를 호출하여 동일한 작업을 수행 할 수 있습니까? – user204088

+0

@ user204088에 따라 다릅니다. 서비스에서 대화 형 사용자를 사용하도록 설정하면 보이지 않는 창을 직접 만들 수 있지만 콘솔 사용자는 로그온해야합니다. 또는'RegisterServiceCtrlHandlerEx'를 사용하고'HandlerEx'에서'SERVICE_CONTROL_POWEREVENT'를 청취하십시오. – toriningen

관련 문제