3

WindowsでEXEとして実行されているマルチプロセスのpythonアプリケーションがあります。オペレーティング システムのシャットダウンを選択すると、プロセスがシャットダウンされた結果として、アプリケーションは多くの例外をスローします。

マルチプロセスの終了を自分で処理できるように、Windows によるシステムのシャットダウン要求をキャプチャする方法はありますか?

4

1 に答える 1

5

nabble.comページでは、次の使用が提案されてwin32api.SetConsoleCtrlHandlerます。

「誰かが電源ボタンを押したときなど、ウィンドウがシャットダウンしたときに何かをする必要があります。これはウィンドウ メッセージ、WM_QUERYENDSESSION または WM_ENDSESSION だと思います。これをpythonでトラップする方法が見つかりません。atexit() は機能しません。シグナル モジュールを使用して SIGBREAK または SIGTERM をトラップしても機能しません。」<br> win32api.SetConsoleCtrlHandler を使用して、コンソールに送信される CTRL_SHUTDOWN_EVENT をキャッチできる場合があります。

Python windows shutdown eventsも参照 してください。「win32api.setConsoleCtrlHandler() を使用すると、Windows からシャットダウン/ログオフ/その他のイベントを受け取り、アプリを正常にシャットダウンできます」などと書かれています。

于 2012-12-17T14:12:38.333 に答える