Hello, I used this solution, because it is more complete under PowerShell.
    
    
      proc SetConsoleCtrlHandler(x:proc ; ok : WINBOOL) : WINBOOL {.stdcall, 
dynlib: "kernel32", importc: "SetConsoleCtrlHandler".}
      
      proc CtrlHandler(fdwCtrlType :DWORD) :WINBOOL =
        const CTRL_C_EVENT = 0'i32
        const CTRL_CLOSE_EVENT = 1'i32
        const CTRL_BREAK_EVENT = 2'i32
        const CTRL_LOGOFF_EVENT = 5'i32
        const CTRL_SHUTDOWN_EVENT = 6'i32
        case fdwCtrlType :
          # Handle the CTRL-C signal.
          of CTRL_C_EVENT:
            echo "Ctrl-C event\n\n"
            when not defined(release):
              return 0
            else:
              return 1
          
          # CTRL-CLOSE: confirm that the user wants to exit.
          of CTRL_CLOSE_EVENT:
            echo "Ctrl-Close event\n"
            return 1
          
          # Pass other signals to the next handler.
          of CTRL_BREAK_EVENT:
            echo "Ctrl-Break event\n"
            return 1
          
          of CTRL_LOGOFF_EVENT :
            echo "Ctrl-logoff event\n"
            return 0
          
          of CTRL_SHUTDOWN_EVENT :
            echo "Ctrl-Shtdown event\n"
            return 0
          
          else :
            return 0
      
      discard SetConsoleCtrlHandler(CtrlHandler,1'i32)
    
    
    Run

Reply via email to