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.
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 .
Een buffer met consoleinvoerfuncties op laag niveau bevat invoerrecords die informatie kunnen bevatten over toetsenbord-, muis-, buffergrootte-, focus- en menugebeurtenissen. De functies op laag niveau bieden directe toegang tot de invoerbuffer, in tegenstelling tot de functies op hoog niveau die de gegevens van de invoerbuffer filteren en verwerken, waarbij alle toetsenbordinvoer wordt genegeerd.
Er zijn vijf functies op laag niveau voor toegang tot de invoerbuffer van een console:
- ReadConsoleInput
- PeekConsoleInput
- GetNumberOfConsoleInputEvents
- WriteConsoleInput
- FlushConsoleInputBuffer
De functies ReadConsoleInput, PeekConsoleInput en WriteConsoleInput gebruiken de INPUT_RECORD-structuur om van of naar een invoerbuffer te lezen of schrijven.
Hieronder volgen beschrijvingen van de console-invoerfuncties op laag niveau.
| Functie | Beschrijving |
|---|---|
| ReadConsoleInput | Leest en verwijdert invoerrecords uit een invoerbuffer. De functie wordt pas geretourneerd als er ten minste één record beschikbaar is om te worden gelezen. Vervolgens worden alle beschikbare records overgebracht naar de buffer van het aanroepende proces totdat er geen records meer beschikbaar zijn of het opgegeven aantal records is gelezen. Ongelezen records blijven in de invoerbuffer staan voor de volgende leesbewerking. De functie rapporteert het totale aantal records dat is gelezen. Zie Voor een voorbeeld waarin ReadConsoleInput wordt gebruikt , de gebeurtenissen van de invoerbuffer lezen. |
| PeekConsoleInput | Leest zonder de in behandeling zijnde invoerrecords in een invoerbuffer te verwijderen. Alle beschikbare records tot aan het opgegeven nummer worden gekopieerd naar de buffer van het aanroepende proces. Als er geen records beschikbaar zijn, wordt de functie onmiddellijk geretourneerd. De functie rapporteert het totale aantal records dat is gelezen. |
| GetNumberOfConsoleInputEvents | Bepaalt het aantal ongelezen invoerrecords in een invoerbuffer. |
| WriteConsoleInput | Plaatst invoerrecords in de invoerbuffer achter eventuele in behandeling zijnde records in de buffer. De invoerbuffer groeit, indien nodig, dynamisch om zoveel records als geschreven te bevatten. Als u deze functie wilt gebruiken, moet de opgegeven invoerbuffergreep het GENERIC_WRITE toegangsrecht hebben. |
| FlushConsoleInputBuffer | Verwijdert alle ongelezen gebeurtenissen in de invoerbuffer. Als u deze functie wilt gebruiken, moet de opgegeven invoerbuffergreep het GENERIC_WRITE toegangsrecht hebben. |
Een thread van het proces van een toepassing kan een wachtbewerking uitvoeren om te wachten totdat invoer beschikbaar is in een invoerbuffer. Als u een wachtbewerking wilt starten, geeft u een ingang op voor de invoerbuffer in een aanroep naar een van de wachtfuncties. Deze functies kunnen worden geretourneerd wanneer de status van een of meer objecten wordt gesignaleerd. De status van een consoleinvoergreep wordt gesignaleerd wanneer er ongelezen records in de invoerbuffer staan. De status wordt opnieuw ingesteld op niet-gesignaleerd wanneer de invoerbuffer leeg wordt. Als er geen invoer beschikbaar is, krijgt de aanroepende thread een efficiënte wachtstatus, waarbij er weinig processortijd wordt verbruikt terwijl wordt gewacht tot aan de voorwaarden van de wachtbewerking wordt voldaan.