GenerateConsoleCtrlEvent 函式
將指定的訊號傳送至主控台進程群組,該群組會共用與呼叫進程相關聯的控制台。
語法
BOOL WINAPI GenerateConsoleCtrlEvent(
_In_ DWORD dwCtrlEvent,
_In_ DWORD dwProcessGroupId
);
參數
dwCtrlEvent [in]
要產生的訊號類型。 此參數可以是下列其中一個值。
值 | 意義 |
---|---|
CTRL_C_EVENT 0 | 產生 CTRL+C 訊號。 此訊號不能限制為特定的進程群組。 如果 dwProcessGroupId 為非零值,此函式將會成功,但指定的進程群組內的進程將不會接收 CTRL+C 訊號。 |
CTRL_BREAK_EVENT 1 | 產生 CTRL+BREAK 訊號。 |
dwProcessGroupId [in]
要接收訊號的進程群組標識碼。 當呼叫 CreateProcess 函式時指定CREATE_NEW_PROCESS_GROUP旗標時,就會建立進程群組。 新進程的進程標識碼也是新進程群組的進程群組標識碼。 進程群組包含根進程子代的所有進程。 只有與呼叫進程共用相同控制台之群組中的進程才會收到訊號。 換句話說,如果群組中的進程建立新的控制台,該程式就不會接收訊號,也不會接收其子系。
如果此參數為零,則會在共用呼叫進程的控制台的所有進程中產生訊號。
傳回值
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
GenerateConsoleCtrlEvent 會導致呼叫目標群組中進程的控制處理程式函式。 所有控制台進程都有呼叫 ExitProcess 函式的預設處理程式函式。 控制台進程可以使用 SetConsoleCtrlHandler 函式來安裝或移除其他處理程式函式。
SetConsoleCtrlHandler 也可以啟用可繼承的屬性,讓呼叫進程忽略 CTRL+C 訊號。 如果 GenerateConsoleCtrlEvent 將 CTRL+C 訊號傳送至已啟用此屬性的進程,則不會呼叫該程式的處理程式函式。 CTRL+BREAK 訊號一律會導致呼叫處理程式函式。
需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
頁首 | ConsoleApi2.h (透過 WinCon.h,包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |