2012-01-08 84 views
4

當用戶通過點擊關閉按鈕(而不是使用Ctrl + C)來終止它時,Windows API是否提供了一種在控制檯窗口中通知正在運行的Delphi應用程序的方法?單擊關閉按鈕時如何通知控制檯窗口程序?

有關的問題:How do I handle Ctrl+C in a Delphi console application?

+1

哦,來吧,掛Q包含答案!完全按照所示的相同方式處理CTRL_CLOSE_EVENT通知。 – OnTheFly 2012-01-08 11:40:33

+3

這是所有記錄在這裏:http://msdn.microsoft.com/en-us/library/ms683242.aspx – 2012-01-08 12:23:23

+1

也許,@用戶,但尋找* this *問題的答案的人不會點擊* that *問題標題。兩個不同的問題可以有相同或相似的答案。有人發佈一個問題,他或她已經知道答案也是可以的。這讓其他人稍後可以更輕鬆地找到答案。 – 2012-01-09 15:30:37

回答

11

操作系統通過通知各種事件的控制檯程序「控制信號。」致電SetConsoleCtrlHandler配置a function for the OS to call傳遞信號。關閉窗口的信號是CTRL_CLOSE_EVENT

function ConsoleEventProc(CtrlType: DWORD): BOOL; stdcall; 
begin 

    if (CtrlType = CTRL_CLOSE_EVENT) then 
    begin 
    // optionally run own code here 
    // ... 

    end; 

    Result := True; 
end; 

... 

begin 
    SetConsoleCtrlHandler(@ConsoleEventProc, True); 
    // my application code here 
    // ... 
end. 
相關問題