Dela via


Funktionen ReadConsoleInputEx

Läser data från en konsolindatabuffert och tar bort dem från bufferten med konfigurerbart beteende.

Not Den här funktionen har inget associerat importbibliotek. Den här funktionen är tillgänglig som resurser med namnet ReadConsoleInputExA och ReadConsoleInputExW i Kernel32.dll. Du måste använda funktionerna LoadLibrary och GetProcAddress för att dynamiskt länka till Kernel32.dll.

Syntax

BOOL WINAPI ReadConsoleInputEx(
  _In_  HANDLE        hConsoleInput,
  _Out_ PINPUT_RECORD lpBuffer,
  _In_  DWORD         nLength,
  _Out_ LPDWORD       lpNumberOfEventsRead,
  _In_  USHORT        wFlags
);

Parameterar

hConsoleInput [in]
Ett handtag till konsolens indatabuffert. Handtaget måste ha GENERIC_READ åtkomsträtt. Mer information finns i Säkerhets- och åtkomsträttigheter för konsolbuffert.

lpBuffer [ut]
En pekare till en matris av INPUT_RECORD strukturer som tar emot data från indatabufferten.

nLength [in]
Storleken på matrisen som pekas på av parametern lpBuffer i matriselement.

lpNumberOfEventsRead [ut]
En pekare till en variabel som tar emot antalet lästa indataposter.

wFlags [in]

En uppsättning flaggor (OR:ade tillsammans) som anger konsolens läsbeteende.

Värde Innebörd
CONSOLE_READ_NOREMOVE0x0001 Lämna händelserna i indatabufferten (som i PeekConsoleInput)
CONSOLE_READ_NOWAIT0x0002 Returnera omedelbart, även om det inte finns några händelser i indatabufferten.

Returvärde

Om funktionen lyckas är returvärdet icke-noll.

Om funktionen misslyckas är returvärdet noll. Om du vill få utökad felinformation anropar du GetLastError.

Anmärkningar

Den här funktionen är en konfigurerbar version av ReadConsoleInput. Mer detaljerad information om driften finns i kommentarerna ReadConsoleInput.

Att anropa ReadConsoleInputEx med flaggorna CONSOLE_READ_NOREMOVE | CONSOLE_READ_NOWAIT motsvarar anropet PeekConsoleInput.

Den här funktionen finns inte i Windows-konsolrubrikerna. Om du vill få åtkomst till den från ett C- eller C++-program inkluderar du följande deklarationer och länkar dynamiskt kernel32.dll enligt ovan.

#ifndef CONSOLE_READ_NOREMOVE
#define CONSOLE_READ_NOREMOVE   0x0001
#endif

#ifndef CONSOLE_READ_NOWAIT
#define CONSOLE_READ_NOWAIT     0x0002
#endif

BOOL
WINAPI
ReadConsoleInputExA(
    _In_ HANDLE hConsoleInput,
    _Out_writes_(nLength) PINPUT_RECORD lpBuffer,
    _In_ DWORD nLength,
    _Out_ LPDWORD lpNumberOfEventsRead,
    _In_ USHORT wFlags);

BOOL
WINAPI
ReadConsoleInputExW(
    _In_ HANDLE hConsoleInput,
    _Out_writes_(nLength) PINPUT_RECORD lpBuffer,
    _In_ DWORD nLength,
    _Out_ LPDWORD lpNumberOfEventsRead,
    _In_ USHORT wFlags);

Kravspecifikation

   
Lägsta klient som stöds Windows 7 [endast skrivbordsappar]
Lägsta server som stöds Windows Server 2003 [endast skrivbordsappar]
Rubrik ingen, se kommentarer
Bibliotek ingen, se kommentarer
DLL Kernel32.dll
Unicode- och ANSI-namn ReadConsoleInputExW (Unicode) och ReadConsoleInputExA (ANSI)

Se även

Konsolfunktioner

FlushConsoleInputBuffer

GetNumberOfConsoleInputEvents

INPUT_RECORD

Low-Level konsolens indatafunktioner

ReadConsoleInput

PeekConsoleInput

ReadConsole

ReadFile

SetConsoleCP

SetConsoleOutputCP

WriteConsoleInput