控制台控件处理程序

当进程收到 Ctrl+CCTRL+BREAKCTRL+CLOSE 信号时,每个控制台进程都有自己的控制处理程序函数列表。 最初,每个进程的控制处理程序列表仅包含调用 ExitProcess 函数的默认处理程序函数。 控制台进程可以通过调用 SetConsoleCtrlHandler 函数添加或删除其他 HandlerRoutine 函数。 此函数不会影响其他进程的控制处理程序列表。 当控制台进程收到任何控制信号时,它会在最后一个注册的首次调用的基础上调用处理程序函数,直到其中一个处理程序返回 TRUE。 如果没有任何处理程序返回 TRUE,则调用默认处理程序。

函数的 dwCtrlType 参数标识接收了哪个控制信号,返回值指示信号是否已处理。

新线程在命令行客户端进程中启动,以运行处理程序例程。 有关此线程的超时值和作的详细信息,请参阅 HandlerRoutine 函数文档中。

有关控件处理程序函数的示例,请参阅 注册控件处理程序函数

请注意,调用 AttachConsoleAllocConsoleFreeConsole 会将客户端进程中的控制处理程序表重置为其初始状态。