python 捕获命令窗口终结信号并处理(event handler)

本文地址:https://www.cnblogs.com/tujia/p/15418512.html

 

主要用到的 signal 信息处理库,不过这个库在 windows 上不好使,windows 上要用 win32api

 

直接上代码吧:

import time
import platform


def on_exit(signum, frame=None):
    if signum == 2:
        print('closing...')
        time.sleep(2)


def register_exit_handler():
    if platform.system() == 'Windows': # windows 平台
        import win32api
        win32api.SetConsoleCtrlHandler(on_exit, True)
    else: # Unix 平台
        import signal
        signal.signal(signal.SIGTERM, on_exit)


if __name__ == '__main__':  
    print('running...')
    register_exit_handler()
    
    while True:
        pass

signal 文档:signal --- 设置异步事件处理程序 — Python 3.8.12 文档

win32api 文档:tjguk/pywin32-docs: HTML version of pywin32 docs from chm (github.com)

 

本文地址:https://www.cnblogs.com/tujia/p/15418512.html


完。

 

上一篇:详解BOM的存储对象


下一篇:rust win32api EnumWindows