2012-01-08 16 views
4

Windows APIは、(Ctrl + Cを使用する代わりに)閉じるボタンをクリックして終了すると、実行中のDelphiアプリケーションにコンソールウィンドウで通知する方法を提供していますか?閉じるボタンをクリックしたときにコンソールウィンドウプログラムに通知する方法はありますか?

関連質問:How do I handle Ctrl+C in a Delphi console application?

+1

ああ、来る、リンクされたQには答えが含まれています! CTRL_CLOSE_EVENT通知は、ここに示したのとまったく同じ方法で処理します。 – OnTheFly

+3

これはすべてここに書かれています:http://msdn.microsoft.com/en-us/library/ms683242.aspx –

+1

おそらく、@ユーザーですが、*この*質問への答えを探している人は*質問タイトル。 2つの異なる質問が同じまたは類似の回答を持つことは問題ありません。また、誰かが既にその答えを知っているという質問を投稿することもOKです。後で他の人が答えを見つけやすくなります。 –

答えて

11

OSは、経由して様々なイベントのコンソールプログラムを通知「の制御信号。」シグナルを配信するようにa function for the OS to callを設定するには、SetConsoleCtrlHandlerに電話してください。閉じたウィンドウの信号は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. 
関連する問題