Verhinderung am schließen der Shell(Konsole) mit STR+C
-
Hallo Leute ich möchte in meiner Shell alle internen ausgeführten Prozesse mit STRG+C beenden wie bei cmd oder cygwin, doch wenn ich diese Tasten drücke wird das ganze konsolenfenster beendet. Wie macht man das, dass nur in der shell ausgeführte befehle beendet werden?
-
SetConsoleCtrlHandler
-
Hab mir folgendes zusammengebastelt:
#include <windows.h> #include <iostream> #include <string> using namespace std; #pragma comment(lib, "user32.lib") BOOL WINAPI ConsoleHandler(DWORD CEvent) { switch(CEvent) { case CTRL_C_EVENT: break; } return TRUE; } int main() { string input; do { SetConsoleCtrlHandler(ConsoleHandler, TRUE); cout << "Eingabe:"; getline(cin, input); //... }while(1); CloseHandle(ConsoleHandler); return 0; }Wenn ich z.B. ein befehl ausführe und dann mit STRG+C drücke wird dieser beendet, aber wenn ich nix eingegeben hab und dann die Tasten drücke wird die Prompt unendlich mal ausgegeben, woran liegt das?