在Delphi控制台应用程序中如何处理Ctrl C?

前端之家收集整理的这篇文章主要介绍了在Delphi控制台应用程序中如何处理Ctrl C?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有最佳做法和代码段可用,显示如何在Delphi控制台应用程序中处理Ctrl C?

我发现一些文章提供了有关调试器可能出现的问题的一些信息,包括异常处理,卸载DLL,关闭stdin以及定稿for example this CodeGear forums thread.

解决方法

从Windows API( MSDN):
BOOL WINAPI SetConsoleCtrlHandler(
    PHANDLER_ROUTINE HandlerRoutine,// address of handler function  
    BOOL Add    // handler to add or remove 
   );

HandlerRoutine函数是控制台进程指定的用于处理进程接收到的控制信号的函数.该函数可以有任何名称.

BOOL WINAPI HandlerRoutine(
    DWORD dwCtrlType    //  control signal type
   );

在Delphi中,处理程序例程应该是:

function console_handler( dwCtrlType: DWORD ): BOOL; stdcall;
begin
  // Avoid terminating with Ctrl+C
  if (  CTRL_C_EVENT = dwCtrlType  ) then
    result := TRUE
  else
    result := FALSE;
end;
原文链接:https://www.f2er.com/delphi/101351.html

猜你在找的Delphi相关文章