GenerateConsoleCtrlEvent功能将指定的信号发送到共享与调用进程相关联的控制台的控制台进程组。
BOOL GenerateConsoleCtrlEvent(
DWORD 【dwCtrlEvent】, | //信号生成 |
DWORD 【dwProcessGroupId】 | //进程组获取信号 |
); |
参数
【dwCtrlEvent】
指定要生成的信号的类型。指定以下值之一:
值 | 含义 |
CTRL_C_EVENT | 产生一个CTRL + C信号。 |
CTRL_BREAK_EVENT | 产生一个CTRL + BREAK信号。 |
【dwProcessGroupId】
指定接收信号的进程组的标识符。在调用CreateProcess函数中指定了CREATE_NEW_PROCESS_GROUP标志时,将创建一个进程组。新进程的进程标识符也是新进程组的进程组标识符。进程组包括作为根进程后代的所有进程。只有组中共享与调用进程相同的控制台的进程才能接收到该信号。换句话说,如果组中的进程创建一个新的控制台,则该进程不会收到该信号,也不会产生其后代。
如果此参数为零,则在共享控制台的所有进程中生成信号。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
GenerateConsoleCtrlEvent导致目标组中进程的控制处理函数被调用。所有控制台进程都具有调用ExitProcess功能的默认处理函数。控制台进程可以使用SetConsoleCtrlHandler函数来安装或删除其他处理函数。
SetConsoleCtrlHandler也可以启用一个可继承属性,导致调用进程忽略CTRL + C信号。如果GenerateConsoleCtrlEvent向启用此属性的进程发送CTRL + C信号,则不会调用该进程的处理函数。CTRL + BREAK信号总是导致处理函数被调用。
也可以看看