Compartir a través de


Función ReadConsoleInputEx

Lee datos de un búfer de entrada de la consola y los elimina del búfer, con un comportamiento configurable.

Nota Esta función no tiene ninguna biblioteca de importación asociada y está disponible como los recursos denominados ReadConsoleInputExA y ReadConsoleInputExW en Kernel32.dll. Debe utilizar las funciones LoadLibrary y GetProcAddress para vincular dinámicamente a Kernel32.dll.

Sintaxis

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

Parámetros

hConsoleInput [in]
Identificador del búfer de entrada de la consola. El identificador debe tener derecho de acceso de GENERIC_READ. Para obtener más información, consulte Seguridad y derechos de acceso del búfer de la consola.

lpBuffer [out]
Puntero a una matriz de estructuras INPUT_RECORD que recibe los datos del búfer de entrada.

nLength [in]
Tamaño de la matriz a la que apunta el parámetro lpBuffer en los elementos de matriz.

lpNumberOfEventsRead [out]
Puntero a una variable que recibe el número de registros de entrada leídos.

wFlags [in]

Conjunto de marcas (unidas por el operador OR) que especifica el comportamiento de lectura de la consola.

Valor Significado
CONSOLE_READ_NOREMOVE 0x0001 Dejar los eventos en el búfer de entrada (como en PeekConsoleInput).
CONSOLE_READ_NOWAIT 0x0002 Devolver inmediatamente, incluso si no hay eventos en el búfer de entrada.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Esta función es una versión configurable de ReadConsoleInput. Consulte los comentarios de ReadConsoleInput para obtener más detalles operativos.

Llamar a ReadConsoleInputEx con las marcas CONSOLE_READ_NOMOVE | CONSOLE_READ_NOWAIT es equivalente a llamar a PeekConsoleInput.

Esta función no existe en los encabezados de la consola de Windows. Para acceder a ella desde una aplicación de C o C++, incluya las siguientes declaraciones y vincule dinámicamente a kernel32.dll como se indicó anteriormente.

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

Requisitos

   
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado Ninguno, consulte los comentarios.
Biblioteca Ninguna, consulte los comentarios.
DLL Kernel32.dll
Nombres Unicode y ANSI ReadConsoleInputExW (Unicode) y ReadConsoleInputExA (ANSI)

Consulte también

Funciones de la consola

FlushConsoleInputBuffer

GetNumberOfConsoleInputEvents

INPUT_RECORD

Funciones de entrada de la consola de bajo nivel

PeekConsoleInput

PeekConsoleInput

ReadConsole

ReadFile

SetConsoleCP

SetConsoleOutputCP

WriteConsoleInput