Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Tastenkombinationen STRG+C und STRG+UNTBR erhalten spezielle Behandlung durch Konsolenprozesse. Wenn ein Konsolenfenster den Tastaturfokus hat, wird STRG+C oder STRG+BREAK standardmäßig als Signal (SIGINT oder SIGBREAK) und nicht als Tastatureingabe behandelt. Standardmäßig werden diese Signale an alle Konsolenprozesse übergeben, die an die Konsole angeschlossen sind. (Getrennte Prozesse sind nicht betroffen. Siehe Erstellen einer Konsole.) Das System erstellt in jedem Clientprozess einen neuen Thread zur Behandlung des Ereignisses. Der Thread löst eine Ausnahme aus, wenn der Prozess gedebuggt wird. Der Debugger kann die Ausnahme behandeln oder mit der Ausnahme fortfahren.
STRG+BREAK wird immer als Signal behandelt, aber eine Anwendung kann das Standardverhalten von STRG+C auf zwei Arten ändern, die verhindern, dass die Handlerfunktionen aufgerufen werden:
- Die SetConsoleMode-Funktion kann den ENABLE_PROCESSED_INPUT Eingabemodus für den Eingabepuffer einer Konsole deaktivieren, sodass STRG+C nicht als Signal, sondern als Tastatureingabe gemeldet wird.
- Wenn SetConsoleCtrlHandler mit NULL- und TRUE-Werten für seine Parameter aufgerufen wird, ignoriert der aufrufende Prozess STRG+C-Signale. Die normale STRG+C-Verarbeitung wird durch Aufrufen von SetConsoleCtrlHandler mit NULL- und FALSE-Werten wiederhergestellt. Dieses Attribut des Ignorierens oder Ignorierens von STRG+C-Signalen wird von untergeordneten Prozessen geerbt, kann aber von jedem Prozess aktiviert oder deaktiviert werden, ohne dass sich dies auf vorhandene Prozesse auswirkt.
Weitere Informationen dazu, wie diese Signale verarbeitet werden, einschließlich Timeouts, finden Sie in der Handler Routine-Rückrufdokumentation .