closuresWindows控制台的操作

我正在编写一个不需要控制台input的Windows控制台程序。 用户通过点击closuresbuttonclosures它。 有什么方法可以认识到它正在closures执行最后一个动作?

就在这里。 您可以设置一个控制台控制处理函数(回调函数),获取有关事件的信息。 Delphi中有一个例子。 如果你需要另一种语言,你应该明白。

function MyConsoleEventHandler( dwCtrlType : DWORD) : BOOL; stdcall; // note: will be called from another thread! begin result := TRUE; try case dwCtrlType of CTRL_C_EVENT : Writeln('Ctrl+C'); CTRL_BREAK_EVENT : Writeln('Ctrl+Break'); CTRL_CLOSE_EVENT : Writeln('CloseTask-Signal'); CTRL_LOGOFF_EVENT : Writeln('LogOff-Signal'); CTRL_SHUTDOWN_EVENT : Writeln('Shutdown-Signal'); else Writeln('Console-Event ',dwCtrlType,' received'); end; if g_Stopserver <> nil then begin Writeln( 'Stopping the server ...'); g_Stopserver.SetEvent; end; except // catch all end; end; class procedure TMyserver.Run; begin SetConsoleCtrlHandler( @MyConsoleEventHandler, TRUE); Writeln('server listening at port '+IntToStr(PORT_SOAP)); Writeln('Press Ctrl+C to stop the server.'); Writeln; g_Stopserver.WaitFor( INFINITE); end;