python关于win32api.setConsoletrlHandler的问题

python关于win32api.setConsoletrlHandler的问题,python,winapi,cmd,Python,Winapi,Cmd,今天,当我使用win32api.SetConsoleCtrlHandler捕捉控制台窗口的关闭按钮时 代码如下: 导入操作系统 导入系统 导入win32api 如果uuuu name uuuuu==\uuuuuuuu main\uuuuuuuu: def回调信号: 调用了printExit处理程序! 退出游戏 sys.exit0 def exit_fun: 输入按任意键退出! win32api.SetConsoletrlHandlerCallback,True 按printPress退出 尝试:

今天,当我使用win32api.SetConsoleCtrlHandler捕捉控制台窗口的关闭按钮时

代码如下:

导入操作系统 导入系统 导入win32api 如果uuuu name uuuuu==\uuuuuuuu main\uuuuuuuu: def回调信号: 调用了printExit处理程序! 退出游戏 sys.exit0 def exit_fun: 输入按任意键退出! win32api.SetConsoletrlHandlerCallback,True 按printPress退出 尝试: 输入 除EOFError外: 而1: 通过 我有一个关于退出功能的问题,当我使用ctrl c关闭cmd窗口时,它是工作

但是!我尝试使用控制台窗口的关闭按钮。退出的乐趣是不起作用

我不知道为什么

谢谢你的回答:

但是!我尝试使用控制台窗口的关闭按钮。退出的乐趣是 不起作用

我假设您正在谈论为什么退出游戏机不能再读取控制台输入

单击控制台窗口的关闭按钮时,系统将生成CTRL\u close\u事件信号。控制台函数或调用控制台函数的任何C运行时函数在处理上述信号期间可能无法可靠工作。原因是在执行流程信号处理程序之前,可能已调用了部分或所有内部控制台清理例程

单击“关闭”按钮后会有一个5000毫秒的超时。当超时发生时,即使您什么也不做,控制台进程也将退出。但是,使用ctrl c时没有超时


请参阅和。

关闭控制台窗口将终止控制台进程。它不会追溯注入控制序列。虽然问题不清楚,但你需要解决什么问题。它不起作用,根本不是问题陈述。解释如何做得更好。原创!谢谢你的回答!你好丽塔。如果控制台应用程序在执行过程中被中断/关闭,我尝试使用win32api.SetConsoleCtrlHandler关闭Excel实例。函数确实会被调用,但当我尝试关闭时会出现错误,这通常不会发生在函数之外,可能是因为它是不同的线程,但我不确定。如果你能帮助我,我将不胜感激。谢谢你抽出时间。