Как можно уведомить консольную оконную программу при нажатии на кнопку закрытия? - PullRequest
4 голосов
/ 08 января 2012

Предоставляет ли Windows API способ уведомления запущенного приложения Delphi в окне консоли, когда пользователь закрывает его нажатием кнопки закрытия (вместо использования Ctrl + C)?

Смежный вопрос: Как мне обработать Ctrl + C в консольном приложении Delphi?

1 Ответ

11 голосов
/ 08 января 2012

ОС уведомляет консольные программы о различных событиях с помощью «управляющих сигналов». Вызовите 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...