2010-06-16 6 views
5

Ich habe eine Konsolen-App, und ich möchte Control-C erfassen und ordnungsgemäß herunterfahren.C# Konsolenanwendung: Verhindert das Drucken von Control-C?

Ich habe den folgenden Code:

Console.CancelKeyPress += new ConsoleCancelEventHandler((o, e) => 
{ 
    Logger.Log("Control+C hit. Shutting down."); 
    resetEvent.Set(); 
}); 

Und die Ausgabefenster zeigt:

6/16/2010 3:24:34 PM: Strg + C Hit. Herunterfahren.
^ C

Gibt es eine Möglichkeit, die Steuer-c Zeichen ^C erscheinen zu verhindern? Es ist kein riesiger Deal, aber aus irgendeinem Grund werde ich darauf fixiert sein, weil ich so anal bin.

Antwort

3

eine Konsolenanwendung Als ich Environment.Exit verwenden würde, um zu signalisieren, dass die Anwendung verlässt und diese weg stoppen die ^C von drucken.

Sie könnten sogar einen spezifischen Fehlercode angeben, um zu symbolisieren, dass der Benutzer CTRL + C gedrückt hat.

static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e) 
{ 
    Console.WriteLine("Control+C hit. Shutting down."); 

    Environment.Exit(-1); 
} 
0

Dies ist zwar nicht unbedingt eine Lösung, die Sie implementieren möchten, macht es die^C verhindern angezeigt wird:

static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e) 
{ 
    Console.WriteLine("Control+C hit. Shutting down.");  
    Process.GetCurrentProcess().Kill(); 
} 
2

Dies sollte ... arbeiten

Console.CancelKeyPress += new ConsoleCancelEventHandler((o, e) => 
{ 
    Console.WriteLine("Control+C hit. Shutting down."); 
    Environment.Exit(0); 
}); 

Console.ReadLine();