Freigeben über


ReadConsoleInputEx-Funktion

Liest Daten aus einem Konsoleneingabepuffer und entfernt sie aus dem Puffer mit konfigurierbarem Verhalten.

Hinweis Diese Funktion hat keine zugehörige Importbibliothek. Diese Funktion ist als Ressourcen mit dem Namen ReadConsoleInputExA und ReadConsoleInputExW in Kernel32.dll verfügbar. Sie müssen die Funktionen LoadLibrary und GetProcAddress verwenden, um dynamisch eine Verknüpfung mit Kernel32.dll zu erstellen.

Syntax

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

Parameter

hConsoleInput [in]
Ein Handle für den Konsoleneingabe-Puffer. Das Handle muss über das Zugriffsrecht GENERIC_READ verfügen. Weitere Informationen finden Sie unter Sicherheit und Zugriffsrechte für Konsolenpuffer.

lpBuffer [out]
Ein Zeiger auf ein Array von INPUT_RECORD Strukturen, die die Eingabepufferdaten empfangen.

nLength [in]
Die Größe des Arrays, auf das der lpBuffer-Parameter in Arrayelementen verweist.

lpNumberOfEventsRead [out]
Ein Zeiger auf eine Variable, die die Anzahl der gelesenen Eingabedatensätze empfängt.

wFlags [in]

Eine Reihe von Flags (ORed zusammengehörend), die das Leseverhalten der Konsole angeben.

value Bedeutung
CONSOLE_READ_NOREMOVE0x0001 Lassen Sie die Ereignisse im Eingabepuffer (wie in PeekConsoleInput)
CONSOLE_READ_NOWAIT0x0002 Gibt sofort zurück, auch wenn im Eingabepuffer keine Ereignisse vorhanden sind.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Diese Funktion ist eine konfigurierbare Version von ReadConsoleInput. Weitere Betriebsdetails finden Sie in den Hinweisen ReadConsoleInput .

Der Aufruf von ReadConsoleInputEx mit den Flags CONSOLE_READ_NOREMOVE | CONSOLE_READ_NOWAIT ist gleichbedeutend mit dem Aufruf von PeekConsoleInput.

Diese Funktion ist in den Windows-Konsolenheadern nicht vorhanden. Um von einer C- oder C++-Anwendung darauf zugreifen zu können, schließen Sie die folgenden Deklarationen ein, und verknüpfen Sie kernel32.dll dynamisch wie oben erwähnt.

#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);

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile keine, siehe Hinweise
Bibliothek keine, siehe Hinweise
DLL Kernel32.dll
Unicode- und ANSI-Namen ReadConsoleInputExW (Unicode) und ReadConsoleInputExA (ANSI)

Weitere Informationen

Console Functions

FlushConsoleInputBuffer

GetNumberOfConsoleInputEvents

INPUT_RECORD

Low-Level Console Input Functions

ReadConsoleInput

PeekConsoleInput

ReadConsole

ReadFile

SetConsoleCP

SetConsoleOutputCP

WriteConsoleInput