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.
Das Verhalten der High-Level-Konsolenfunktionen wird von den Konsoleneingabe- und Ausgabemodi beeinflusst. Alle folgenden Konsoleneingabemodi sind für den Eingabepuffer einer Konsole aktiviert, wenn eine Konsole erstellt wird:
- Zeileneingabemodus
- Verarbeiteter Eingabemodus
- Echoeingabemodus
Beide der folgenden Konsolenausgabemodi sind für einen Konsolenbildschirmpuffer aktiviert, wenn er erstellt wird:
- Verarbeiteter Ausgabemodus
- Umbruch im EOL-Ausgabemodus
Alle drei Eingabemodi sowie der verarbeitete Ausgabemodus sind so konzipiert, dass sie zusammenarbeiten. Es empfiehlt sich, alle diese Modi als Gruppe zu aktivieren oder zu deaktivieren. Wenn alle aktiviert sind, wird die Anwendung als "gekocht" bezeichnet, was bedeutet, dass der Großteil der Verarbeitung für die Anwendung verarbeitet wird. Wenn alle deaktiviert sind, befindet sich die Anwendung im Modus "unformatiert". Dies bedeutet, dass die Eingabe ungefiltert ist und alle Verarbeitungen der Anwendung verbleiben.
Eine Anwendung kann die GetConsoleMode-Funktion verwenden, um den aktuellen Modus des Eingabepuffers oder des Bildschirmpuffers einer Konsole zu ermitteln. Sie können einen dieser Modi aktivieren oder deaktivieren, indem Sie die folgenden Werte in der SetConsoleMode-Funktion verwenden. Beachten Sie, dass sich das Festlegen des Ausgabemodus eines Bildschirmpuffers nicht auf den Ausgabemodus anderer Bildschirmpuffer auswirkt.
Wenn der hConsoleHandle-Parameter ein Eingabehandle ist, kann der Modus einen oder mehrere der folgenden Werte sein. Wenn eine Konsole erstellt wird, sind alle Eingabemodi außer ENABLE_WINDOW_INPUT und ENABLE_VIRTUAL_TERMINAL_INPUT standardmäßig aktiviert.
| Wert | Bedeutung |
|---|---|
| ENABLE_ECHO_INPUT 0x0004 | Zeichen, die von der ReadFile - oder ReadConsole-Funktion gelesen werden, werden in den aktiven Bildschirmpuffer geschrieben, während sie in die Konsole eingegeben werden. Dieser Modus kann nur verwendet werden, wenn der ENABLE_LINE_INPUT Modus ebenfalls aktiviert ist. |
| ENABLE_INSERT_MODE 0x0020 | Wenn diese Option aktiviert ist, wird text, der in ein Konsolenfenster eingegeben wird, an der aktuellen Cursorposition eingefügt, und der gesamte Text, der auf diese Position folgt, wird nicht überschrieben. Wenn deaktiviert, wird der gesamte folgende Text überschrieben. |
| ENABLE_LINE_INPUT 0x0002 | Die ReadFile - oder ReadConsole-Funktion gibt nur zurück, wenn ein Wagenrücklaufzeichen gelesen wird. Wenn dieser Modus deaktiviert ist, werden die Funktionen zurückgegeben, wenn mindestens ein Zeichen verfügbar ist. |
| ENABLE_MOUSE_INPUT 0x0010 | Wenn sich der Mauszeiger innerhalb der Rahmen des Konsolenfensters befindet und das Fenster den Tastaturfokus hat, werden Mausereignisse, die durch Mausbewegungen und Tastendrücke generiert werden, im Eingabepuffer platziert. Diese Ereignisse werden von ReadFile oder ReadConsole verworfen, auch wenn dieser Modus aktiviert ist. Die ReadConsoleInput-Funktion kann verwendet werden, um MOUSE_EVENT Eingabedatensätze aus dem Eingabepuffer zu lesen. |
| ENABLE_PROCESSED_INPUT 0x0001 | STRG+C wird vom System verarbeitet und wird nicht im Eingabepuffer platziert. Wenn der Eingabepuffer von ReadFile oder ReadConsole gelesen wird, werden andere Steuertasten vom System verarbeitet und nicht im ReadFile - oder ReadConsole-Puffer zurückgegeben. Wenn der modus ENABLE_LINE_INPUT ebenfalls aktiviert ist, werden Rücktaste, Wagenrücklauf- und Zeilenvorschubzeichen vom System behandelt. |
| ENABLE_QUICK_EDIT_MODE 0x0040 | Mit dieser Kennzeichnung kann der Benutzer mit der Maus Text markieren und bearbeiten. Um diesen Modus zu aktivieren, verwenden Sie ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS. Um diesen Modus zu deaktivieren, verwenden Sie ENABLE_EXTENDED_FLAGS ohne dieses Flag. |
| ENABLE_WINDOW_INPUT 0x0008 | Benutzerinteraktionen, die die Größe des Konsolenbildschirmpuffers ändern, werden im Eingabepuffer der Konsole gemeldet. Informationen zu diesen Ereignissen können aus dem Eingabepuffer gelesen werden, indem Anwendungen die ReadConsoleInput-Funktion verwenden, aber nicht mithilfe von ReadFile oder ReadConsole. |
| ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200 | Wenn Sie dieses Kennzeichen festlegen, wird das Virtuelle Terminal-Verarbeitungsmodul angewiesen, benutzereingaben, die vom Konsolenfenster empfangen werden, in Virtuelle Konsolenterminalsequenzen zu konvertieren, die von einer unterstützenden Anwendung über ReadFile - oder ReadConsole-Funktionen abgerufen werden können. Die typische Verwendung dieses Flags ist in Verbindung mit ENABLE_VIRTUAL_TERMINAL_PROCESSING auf dem Ausgabehandle vorgesehen, um eine Verbindung mit einer Anwendung herzustellen, die ausschließlich über virtuelle Terminalsequenzen kommuniziert. |
Wenn der hConsoleHandle-Parameter ein Bildschirmpufferhandle ist, kann der Modus einen oder mehrere der folgenden Werte sein. Wenn ein Bildschirmpuffer erstellt wird, sind beide Ausgabemodi standardmäßig aktiviert.
| Wert | Bedeutung |
|---|---|
| ENABLE_PROCESSED_OUTPUT 0x0001 | Zeichen, die von der WriteFile - oder WriteConsole-Funktion geschrieben oder von der ReadFile - oder ReadConsole-Funktion wiedergegeben werden, werden für ASCII-Steuerelementsequenzen analysiert, und die richtige Aktion wird ausgeführt. Rücklaufzeichen, Tabstopp, Bell, Wagenrücklauf und Zeilenvorschubzeichen werden verarbeitet. Sie sollte aktiviert werden, wenn Steuersequenzen verwendet werden oder wenn ENABLE_VIRTUAL_TERMINAL_PROCESSING festgelegt ist. |
| ENABLE_WRAP_AT_EOL_OUTPUT 0x0002 | Beim Schreiben mit WriteFile oder WriteConsole oder Echo mit ReadFile oder ReadConsole wird der Cursor an den Anfang der nächsten Zeile verschoben, wenn es das Ende der aktuellen Zeile erreicht. Dies bewirkt, dass die im Konsolenfenster angezeigten Zeilen automatisch nach oben scrollen, wenn der Cursor über die letzte Zeile im Fenster hinausschreitet. Außerdem bewirkt dies, dass der Inhalt des Konsolenbildschirmpuffers nach oben (.) verschoben wird. /verwerfen der obersten Zeile des Konsolenbildschirmpuffers) wenn der Cursor über die letzte Zeile im Konsolenbildschirmpuffer hinausschreitet. Wenn dieser Modus deaktiviert ist, wird das letzte Zeichen in der Zeile mit allen nachfolgenden Zeichen überschrieben. |
| ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 | Beim Schreiben mit WriteFile oder WriteConsole werden Zeichen für VT100 und ähnliche Steuerzeichensequenzen analysiert, mit denen Cursorbewegung, Farb-/Schriftartmodus und andere Vorgänge gesteuert werden können, die auch über die vorhandenen Konsolen-APIs ausgeführt werden können. Weitere Informationen finden Sie unter Console Virtual Terminal Sequences. Stellen Sie sicher , dass ENABLE_PROCESSED_OUTPUT bei Verwendung dieses Flags festgelegt ist. |
| DISABLE_NEWLINE_AUTO_RETURN 0x0008 | Beim Schreiben mit WriteFile oder WriteConsole wird dadurch ein zusätzlicher Zustand zum Zeilenendeumbruch hinzugefügt, der die Cursorverschiebungs- und Pufferlaufvorgänge verzögern kann. Wenn ENABLE_WRAP_AT_EOL_OUTPUT festgelegt ist und der Text das Ende der Zeile erreicht, wird der Cursor sofort zur nächsten Zeile verschoben, und der Inhalt des Puffers wird um eine Zeile nach oben verschoben. Im Gegensatz zu diesem Kennzeichensatz wird der Cursor nicht zur nächsten Zeile verschoben, und der Bildlaufvorgang wird nicht ausgeführt. Das geschriebene Zeichen wird an der letzten Position in der Zeile gedruckt, und der Cursor bleibt über diesem Zeichen, als wäre ENABLE_WRAP_AT_EOL_OUTPUT deaktiviert, aber das nächste druckbare Zeichen wird gedruckt, als ob ENABLE_WRAP_AT_EOL_OUTPUT aktiviert ist. Es tritt kein Überschreiben auf. Insbesondere wechselt der Cursor schnell zur folgenden Zeile, bei Bedarf wird ein Bildlauf ausgeführt, das Zeichen wird gedruckt, und der Cursor wechselt eine weitere Position. Die typische Verwendung dieses Flags ist in Verbindung mit der Einstellung ENABLE_VIRTUAL_TERMINAL_PROCESSING vorgesehen, um einen Terminalemulator besser zu emulieren, in dem das endgültige Zeichen auf dem Bildschirm geschrieben wird (.). /in der unteren rechten Ecke) ohne Auslösen eines unmittelbaren Bildlaufs ist das gewünschte Verhalten. |
| ENABLE_LVB_GRID_WORLDWIDE 0x0010 | Die APIs zum Schreiben von Zeichenattributen wie WriteConsoleOutput undWriteConsoleOutputAttribute ermöglichen die Verwendung von Flags aus Zeichenattributen , um die Farbe des Vordergrunds und des Hintergrunds von Text anzupassen. Darüber hinaus wurde ein Bereich von DBCS-Flags mit dem Präfix COMMON_LVB angegeben. In der Vergangenheit funktionieren diese Flags nur auf DBCS-Codeseiten für Chinesisch, Japanisch und Koreanisch. Mit Ausnahme der führenden Byte- und nachgestellten Bytekennzeichnungen beschreiben die übrigen Flags linienzeichnung und umgekehrtes Video (.). /swap foreground and background colors) can be useful for other languages to emphasize portions of output. Wenn Sie dieses Konsolenmodus-Flag festlegen, können diese Attribute auf jeder Codeseite jeder Sprache verwendet werden. Standardmäßig ist es deaktiviert, kompatibilität mit bekannten Anwendungen aufrechtzuerhalten, die in der Vergangenheit diese Flags auf Nicht-CJK-Computern ignoriert haben, um Bits in diesen Feldern für eigene Zwecke oder versehentlich zu speichern. Beachten Sie, dass die Verwendung des ENABLE_VIRTUAL_TERMINAL_PROCESSING-Modus dazu führen kann, dass LVB-Raster und umgekehrte Videokennzeichnungen festgelegt werden, während dieses Flag weiterhin deaktiviert ist, wenn die angefügte Anwendung das Unterstreichen oder umgekehrte Video über Konsolen-Virtual Terminal Sequences anfordert. |