Delen via


Low-Level Console-uitvoerfuncties

Belangrijk

In dit document wordt de consoleplatformfunctionaliteit beschreven die niet langer deel uitmaakt van onze roadmap voor het ecosysteem. We raden u niet aan deze inhoud in nieuwe producten te gebruiken, maar we blijven bestaande gebruiksrechten voor onbepaalde tijd ondersteunen. Onze voorkeurs moderne oplossing richt zich op virtuele terminalreeksen voor maximale compatibiliteit in platformoverschrijdende scenario's. Meer informatie over deze ontwerpbeslissing vindt u in ons klassieke console- versus virtuele terminaldocument .

De uitvoerfuncties op laag niveau bieden directe toegang tot de tekencellen van een schermbuffer. Eén set functies leest van of schrijft naar opeenvolgende cellen vanaf elke locatie in de buffer van het consolescherm. Een andere set functies leest van of schrijft naar rechthoekige blokken cellen.

De volgende functies lezen van of schrijven naar een opgegeven aantal opeenvolgende tekencellen in een schermbuffer, beginnend met een opgegeven cel.

Functie Beschrijving
ReadConsoleOutputCharacter Hiermee kopieert u een tekenreeks met Unicode- of ANSI-tekens uit een schermbuffer.
WriteConsoleOutputCharacter Hiermee schrijft u een tekenreeks met Unicode- of ANSI-tekens naar een schermbuffer.
ReadConsoleOutputAttribute Hiermee kopieert u een tekenreeks met tekst- en achtergrondkleurkenmerken uit een schermbuffer.
WriteConsoleOutputAttribute Hiermee schrijft u een tekenreeks met tekst- en achtergrondkleurkenmerken naar een schermbuffer.
FillConsoleOutputCharacter Hiermee schrijft u één Unicode- of ANSI-teken naar een opgegeven aantal opeenvolgende cellen in een schermbuffer.
FillConsoleOutputAttribute Hiermee schrijft u een combinatie van tekst- en achtergrondkleurkenmerken naar een opgegeven aantal opeenvolgende cellen in een schermbuffer.

Wanneer voor al deze functies de laatste cel van een rij wordt aangetroffen, loopt het lezen of schrijven terug naar de eerste cel van de volgende rij. Wanneer het einde van de laatste rij van de consoleschermbuffer wordt aangetroffen, verwijderen de schrijffuncties alle niet-geschreven tekens of kenmerken en rapporteren de leesfuncties het aantal tekens of kenmerken dat daadwerkelijk is geschreven.

De volgende functies lezen van of schrijven naar rechthoekige blokken van tekencellen op een opgegeven locatie in een schermbuffer.

Functie Beschrijving
ReadConsoleOutput Kopieert teken- en kleurgegevens van een opgegeven blok van schermbuffercellen naar een bepaald blok in een doelbuffer.
WriteConsoleOutput Hiermee schrijft u teken- en kleurgegevens naar een opgegeven blok met schermbuffercellen van een bepaald blok in een bronbuffer.

Deze functies behandelen schermbuffers en bron- of doelbuffers als tweedimensionale matrices van CHAR_INFO structuren (met gegevens van teken- en kleurkenmerken voor elke cel). De functies geven de breedte en hoogte van de bron- of doelbuffer op in tekencellen en de aanwijzer naar de buffer wordt behandeld als een aanwijzer naar de oorspronkelijke cel (0,0) van de tweedimensionale matrix. De functies gebruiken een SMALL_RECT structuur om op te geven welke rechthoek in de consoleschermbuffer moet worden geopend en de coördinaten van de cel linksboven in de bron- of doelbuffer bepalen de locatie van de bijbehorende rechthoek in die buffer.

Met deze functies wordt automatisch de opgegeven rechthoek voor de schermbuffer afgeknipt zodat deze binnen de grenzen van de consoleschermbuffer past. Als de rechthoek bijvoorbeeld coördinaten in de rechterbenedenhoek opgeeft (kolom 100, rij 50) en de consoleschermbuffer slechts 80 kolommen breed is, worden de coördinaten geknipt zodat ze zijn (kolom 79, rij 50). Op dezelfde manier wordt deze aangepaste rechthoek opnieuw geknipt zodat deze binnen de grenzen van de bron- of doelbuffer past. De schermbuffercoördinaten van de werkelijke rechthoek waaruit is gelezen of waarnaar is geschreven, worden opgegeven. Zie Lees- en schrijfblokken van tekens en kenmerken voor een voorbeeld dat deze functies gebruikt.

In de afbeelding ziet u een ReadConsoleOutput-bewerking waarbij de knipbewerking plaatsvindt wanneer het blok wordt gelezen vanuit de buffer van het consolescherm en opnieuw wanneer het blok wordt gekopieerd naar de doelbuffer. De functie rapporteert de werkelijke schermbufferrechthoek waaruit deze is gekopieerd.

schermbuffervenster met doelbuffer