当用户通过单击关闭按钮(而不是使用Ctrl + C)终止时,Windows API是否提供了一种在控制台窗口中通知正在运行的Delphi应用程序的方法?
相关问题:How do I handle Ctrl+C in a Delphi console application?
答案 0 :(得分: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.