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

另請參閱

主控台控制處理常式

主控台函式

CreateProcess

ExitProcess

SetConsoleCtrlHandler