Sdílet prostřednictvím


Vstupní funkce konzoly Low-Level

Důležité

Tento dokument popisuje funkce konzolové platformy, které už nejsou součástí našeho plánu ekosystému. Tento obsah nedoporučujeme používat v nových produktech, ale v budoucnu budeme nadále podporovat stávající využití. Naše upřednostňované moderní řešení se zaměřuje na sekvence virtuálních terminálů pro zajištění maximální kompatibility ve scénářích napříč platformami. Další informace o tomto rozhodnutí o návrhu najdete v naší klasické konzole vs. dokumentu virtuálního terminálu .

Vyrovnávací paměť vstupních funkcí konzoly nízké úrovně obsahuje vstupní záznamy, které můžou obsahovat informace o klávesnici, myši, změně velikosti vyrovnávací paměti, fokusu a událostech nabídky. Funkce nízké úrovně poskytují přímý přístup ke vstupní vyrovnávací paměti, na rozdíl od funkcí vysoké úrovně, které filtrují a zpracovávají data vstupní vyrovnávací paměti a zahodí veškerý vstup z klávesnice.

Pro přístup ke vstupní vyrovnávací paměti konzoly existuje pět funkcí nízké úrovně:

Funkce ReadConsoleInput, PeekConsoleInput a WriteConsoleInput používají ke čtení nebo zápisu do vstupní vyrovnávací paměti strukturu INPUT_RECORD .

Následuje popis vstupních funkcí konzoly nízké úrovně.

Funkce Popis
ReadConsoleInput Načte a odebere vstupní záznamy ze vstupní vyrovnávací paměti. Funkce se nevrací, dokud nebude k dispozici alespoň jeden záznam ke čtení. Všechny dostupné záznamy se pak přenesou do vyrovnávací paměti volajícího procesu, dokud nebudou k dispozici žádné další záznamy nebo se přečte zadaný počet záznamů. Nepřečtené záznamy zůstanou ve vstupní vyrovnávací paměti pro další operaci čtení. Funkce hlásí celkový počet přečtených záznamů. Příklad, který používá ReadConsoleInput, viz čtení vstupní vyrovnávací paměti události.
PeekConsoleInput Čte bez odebrání čekajících vstupních záznamů ve vstupní vyrovnávací paměti. Všechny dostupné záznamy až do zadaného čísla se zkopírují do vyrovnávací paměti volajícího procesu. Pokud nejsou k dispozici žádné záznamy, vrátí funkce okamžitě. Funkce hlásí celkový počet přečtených záznamů.
GetNumberOfConsoleInputEvents Určuje počet nepřečtených vstupních záznamů ve vstupní vyrovnávací paměti.
WriteConsoleInput Umístí vstupní záznamy do vstupní vyrovnávací paměti za všechny čekající záznamy v vyrovnávací paměti. Vstupní vyrovnávací paměť se v případě potřeby dynamicky zvětšuje, aby držela tolik záznamů, kolik jsou zapsány. Aby bylo možné tuto funkci použít, musí mít zadaný popisovač vstupní vyrovnávací paměti GENERIC_WRITE přístupové právo.
FlushConsoleInputBuffer Zahodí všechny nepřečtené události ve vstupní vyrovnávací paměti. Aby bylo možné tuto funkci použít, musí mít zadaný popisovač vstupní vyrovnávací paměti GENERIC_WRITE přístupové právo.

Vlákno procesu aplikace může provést operaci čekání, která čeká na dostupnost vstupu ve vstupní vyrovnávací paměti. Chcete-li zahájit operaci čekání, zadejte popisovač vstupní vyrovnávací paměti ve volání některé z funkcí čekání. Tyto funkce se můžou vrátit, když je signalován stav jednoho nebo více objektů. Stav vstupního popisovače konzoly se signalizují, když jsou ve vstupní vyrovnávací paměti nepřečtené záznamy. Stav je resetován na nesignalizovat, když vstupní vyrovnávací paměť bude prázdná. Pokud není k dispozici žádný vstup, volající vlákno přejde do efektivního stavu čekání a zabírají velmi málo času procesoru při čekání na splnění podmínek operace čekání.