控制台控件处理程序

每个控制台进程都有自己的控制处理程序函数列表,当进程收到 CTRL+CCTRL+BREAKCTRL+CLOSE 信号时,系统会调用这些函数。 最初,每个进程的控制处理程序列表仅包含调用 ExitProcess 函数的默认处理程序函数。 控制台进程可以通过调用 SetConsoleCtrlHandler 函数添加或删除其他 HandlerRoutine 函数。 此函数不会影响其他进程的控制处理程序列表。 当控制台进程收到任何控制信号时,将基于“最后注册的最先调用”原则,调用处理程序函数,直到其中一个处理程序返回 TRUE 为止。 如果所有处理程序均未返回 TRUE,则调用默认处理程序。

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

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

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

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