Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het gedrag van de consolefuncties op hoog niveau wordt beïnvloed door de console-invoer- en uitvoermodi. Alle volgende consoleinvoermodi zijn ingeschakeld voor de invoerbuffer van een console wanneer er een console wordt gemaakt:
- Regelinvoermodus
- Verwerkte invoermodus
- Echo-invoermodus
Beide van de volgende consoleuitvoermodi zijn ingeschakeld voor een consoleschermbuffer wanneer deze wordt gemaakt:
- Verwerkte uitvoermodus
- Wrapping in de EOL-uitvoermodus
Alle drie de invoermodi, samen met de verwerkte uitvoermodus, zijn ontworpen om samen te werken. Het is raadzaam om al deze modi als groep in of uit te schakelen. Wanneer alles is ingeschakeld, wordt gezegd dat de toepassing zich in de "gekookte" modus bevindt, wat betekent dat de meeste verwerking wordt verwerkt voor de toepassing. Wanneer alles is uitgeschakeld, bevindt de toepassing zich in de 'onbewerkte' modus, wat betekent dat invoer niet gefilterd is en dat alle verwerkingen aan de toepassing overblijven.
Een toepassing kan de functie GetConsoleMode gebruiken om de huidige modus van de invoerbuffer of schermbuffer van een console te bepalen. U kunt een van deze modi in- of uitschakelen met behulp van de volgende waarden in de functie SetConsoleMode . Houd er rekening mee dat het instellen van de uitvoermodus van de ene schermbuffer niet van invloed is op de uitvoermodus van andere schermbuffers.
Als de parameter hConsoleHandle een invoergreep is, kan de modus een of meer van de volgende waarden zijn. Wanneer een console wordt gemaakt, worden alle invoermodi behalve ENABLE_WINDOW_INPUT en ENABLE_VIRTUAL_TERMINAL_INPUT standaard ingeschakeld.
| Waarde | Betekenis |
|---|---|
| ENABLE_ECHO_INPUT 0x0004 | Tekens die door de functie ReadFile of ReadConsole worden gelezen, worden naar de actieve schermbuffer geschreven terwijl ze in de console worden getypt. Deze modus kan alleen worden gebruikt als de ENABLE_LINE_INPUT modus ook is ingeschakeld. |
| ENABLE_INSERT_MODE 0x0020 | Wanneer deze optie is ingeschakeld, wordt tekst die in een consolevenster wordt ingevoerd, ingevoegd op de huidige cursorlocatie en worden alle tekst na die locatie niet overschreven. Als deze is uitgeschakeld, wordt alle volgende tekst overschreven. |
| ENABLE_LINE_INPUT 0x0002 | De functie ReadFile of ReadConsole retourneert alleen wanneer een regelterugloopteken wordt gelezen. Als deze modus is uitgeschakeld, worden de functies geretourneerd wanneer een of meer tekens beschikbaar zijn. |
| ENABLE_MOUSE_INPUT 0x0010 | Als de muis aanwijzer zich binnen de randen van het consolevenster bevindt en het venster de focus heeft op het toetsenbord, worden muisgebeurtenissen gegenereerd door muisbewegingen en knopdrukken in de invoerbuffer geplaatst. Deze gebeurtenissen worden verwijderd door ReadFile of ReadConsole, zelfs wanneer deze modus is ingeschakeld. De functie ReadConsoleInput kan worden gebruikt om MOUSE_EVENT invoerrecords uit de invoerbuffer te lezen. |
| ENABLE_PROCESSED_INPUT 0x0001 | Ctrl+C wordt verwerkt door het systeem en wordt niet in de invoerbuffer geplaatst. Als de invoerbuffer wordt gelezen door ReadFile of ReadConsole, worden andere besturingssleutels verwerkt door het systeem en worden deze niet geretourneerd in de ReadFile - of ReadConsole-buffer . Als de ENABLE_LINE_INPUT modus ook is ingeschakeld, worden backspace- en regelteruglooptekens en regelinvoertekens verwerkt door het systeem. |
| ENABLE_QUICK_EDIT_MODE 0x0040 | Met deze vlag kan de gebruiker de muis gebruiken om tekst te selecteren en te bewerken. Als u deze modus wilt inschakelen, gebruikt u ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS. Als u deze modus wilt uitschakelen, gebruikt u ENABLE_EXTENDED_FLAGS zonder deze vlag. |
| ENABLE_WINDOW_INPUT 0x0008 | Gebruikersinteracties die de grootte van de consoleschermbuffer wijzigen, worden gerapporteerd in de invoerbuffer van de console. Informatie over deze gebeurtenissen kan worden gelezen uit de invoerbuffer door toepassingen met behulp van de functie ReadConsoleInput , maar niet door gebruikers met ReadFile of ReadConsole. |
| ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200 | Als u deze vlag instelt, wordt de verwerkingsengine van de virtuele terminal om gebruikersinvoer die door het consolevenster is ontvangen, te converteren naar Console Virtual Terminal Sequences die kunnen worden opgehaald door een ondersteunende toepassing via de functies ReadFile of ReadConsole . Het typische gebruik van deze vlag is bedoeld in combinatie met ENABLE_VIRTUAL_TERMINAL_PROCESSING op de uitvoergreep om verbinding te maken met een toepassing die uitsluitend via virtuele terminalreeksen communiceert. |
Als de parameter hConsoleHandle een schermbuffergreep is, kan de modus een of meer van de volgende waarden zijn. Wanneer er een schermbuffer wordt gemaakt, worden beide uitvoermodi standaard ingeschakeld.
| Waarde | Betekenis |
|---|---|
| ENABLE_PROCESSED_OUTPUT 0x0001 | Tekens die zijn geschreven door de functie WriteFile of WriteConsole , of worden herhaald door de functie ReadFile of ReadConsole , worden geparseerd voor ASCII-besturingsreeksen en de juiste actie wordt uitgevoerd. Backspace, tab, bel, regelterugloop en regelinvoertekens worden verwerkt. Deze moet worden ingeschakeld bij het gebruik van besturingsreeksen of wanneer ENABLE_VIRTUAL_TERMINAL_PROCESSING is ingesteld. |
| ENABLE_WRAP_AT_EOL_OUTPUT 0x0002 | Wanneer u schrijft met WriteFile of WriteConsole of echo met ReadFile of ReadConsole, wordt de cursor verplaatst naar het begin van de volgende rij wanneer deze het einde van de huidige rij bereikt. Dit zorgt ervoor dat de rijen die in het consolevenster worden weergegeven, automatisch omhoog schuiven wanneer de cursor verder gaat dan de laatste rij in het venster. Het zorgt er ook voor dat de inhoud van de consoleschermbuffer omhoog schuift (.. /de bovenste rij van de consoleschermbuffer negeren) wanneer de cursor verder gaat dan de laatste rij in de consoleschermbuffer. Als deze modus is uitgeschakeld, wordt het laatste teken in de rij overschreven met eventuele volgende tekens. |
| ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 | Bij het schrijven met WriteFile of WriteConsole worden tekens geparseerd voor VT100 en vergelijkbare besturingstekenreeksen waarmee cursorverplaatsing, kleur-/lettertypemodus en andere bewerkingen worden bepaald die ook kunnen worden uitgevoerd via de bestaande console-API's. Zie Console Virtual Terminal Sequences voor meer informatie. Zorg ervoor dat ENABLE_PROCESSED_OUTPUT is ingesteld wanneer u deze vlag gebruikt. |
| DISABLE_NEWLINE_AUTO_RETURN 0x0008 | Wanneer u schrijft met WriteFile of WriteConsole, wordt hiermee een extra status toegevoegd aan end-of-line wrapping waarmee de cursor verplaatsing en buffer scrollbewerkingen kunnen worden vertraagd. Normaal gesproken wanneer ENABLE_WRAP_AT_EOL_OUTPUT is ingesteld en tekst het einde van de regel bereikt, wordt de cursor onmiddellijk naar de volgende regel verplaatst en schuift de inhoud van de buffer met één regel omhoog. In tegenstelling tot deze vlagset wordt de cursor niet naar de volgende regel verplaatst en wordt de schuifbewerking niet uitgevoerd. Het geschreven teken wordt op de laatste positie op de regel afgedrukt en de cursor blijft boven dit teken alsof ENABLE_WRAP_AT_EOL_OUTPUT is uitgeschakeld, maar het volgende afdrukbare teken wordt afgedrukt alsof ENABLE_WRAP_AT_EOL_OUTPUT is ingeschakeld. Er wordt geen overschrijven uitgevoerd. De cursor gaat met name snel naar de volgende regel, er wordt zo nodig een schuif uitgevoerd, het teken wordt afgedrukt en de cursor gaat nog een positie verder. Het typische gebruik van deze vlag is bedoeld in combinatie met het instellen van ENABLE_VIRTUAL_TERMINAL_PROCESSING om een terminalemulator beter te emuleren waarbij het laatste teken op het scherm (.. /in de rechterbenedenhoek) zonder direct schuiven te activeren, is het gewenste gedrag. |
| ENABLE_LVB_GRID_WORLDWIDE 0x0010 | De API's voor het schrijven van tekenkenmerken, waaronder WriteConsoleOutput en WriteConsoleOutputAttribute , staan het gebruik van vlaggen van tekenkenmerken toe om de kleur van de voorgrond en achtergrond van tekst aan te passen. Daarnaast is een reeks DBCS-vlaggen opgegeven met het voorvoegsel COMMON_LVB. In het verleden functioneren deze vlaggen alleen in DBCS-codepagina's voor Chinese, Japanse en Koreaanse talen. Met uitzondering van de voorloop-byte- en volg-bytevlagmen, worden de resterende vlaggen beschreven die de lijntekening en omgekeerde video beschrijven (.. /swap voorgrond- en achtergrondkleuren) kan handig zijn voor andere talen om delen van uitvoer te benadrukken. Als u deze consolemodusvlag instelt, kunnen deze kenmerken in elke codepagina in elke taal worden gebruikt. Het is standaard uitgeschakeld om compatibiliteit te behouden met bekende toepassingen die historisch hebben misbruikt van de console waarbij deze vlaggen op niet-CJK-machines worden genegeerd om bits in deze velden op te slaan voor hun eigen doeleinden of per ongeluk. Houd er rekening mee dat het gebruik van de modus ENABLE_VIRTUAL_TERMINAL_PROCESSING ertoe kan leiden dat LVB-raster en omgekeerde videovlagmen worden ingesteld terwijl deze vlag nog steeds is uitgeschakeld als de gekoppelde toepassing een onderstreepte of omgekeerde video aanvraagt via Console Virtual Terminal Sequences. |