Compartir a través de


Función ReadConsoleInput

Lee datos de un búfer de entrada de la consola y los elimina del búfer.

Sintaxis

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

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.

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

Si el número de registros solicitados en el parámetro nLength supera el número de registros disponibles en el búfer, se lee el número de registros disponibles. La función no devuelve resultados hasta que se lee al menos un registro de entrada.

Un proceso puede especificar un identificador de búfer de entrada de la consola en una de las funciones de espera (wait) para determinar cuándo hay entradas de consola no leídas. Cuando el búfer de entrada no está vacío, se señala el estado de un identificador de búfer de entrada de la consola.

Para determinar el número de registros de entrada no leídos en el búfer de entrada de una consola, utilice la función GetNumberOfConsoleInputEvents. Para leer registros de entrada desde un búfer de entrada de la consola sin que afecte al número de registros no leídos, utilice la función PeekConsoleInput. Para descartar todos los registros no leídos en el búfer de entrada de una consola, utilice la función FlushConsoleInputBuffer.

Esta función usa caracteres Unicode o caracteres de 8 bits de la página de códigos actual de la consola. La página de códigos de la consola tiene como valor predeterminado la página de códigos OEM del sistema. Para cambiar la página de códigos de la consola, use las funciones SetConsoleCP o SetConsoleOutputCP. Los consumidores heredados también pueden usar los comandos chcp o mode con cp select=, pero no se recomienda si va a desarrollar algo nuevo.

Ejemplos

Para un ejemplo, vea Lectura de eventos de búfer de entrada.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado ConsoleApi.h (a través de WinCon.h, incluido Windows.h)
Biblioteca Kernel32.lib
Archivo DLL Kernel32.dll
Nombres Unicode y ANSI ReadConsoleInputW (Unicode) y ReadConsoleInputA (ANSI)

Consulte también

Funciones de la consola

FlushConsoleInputBuffer

GetNumberOfConsoleInputEvents

INPUT_RECORD

Funciones de entrada de la consola de bajo nivel

PeekConsoleInput

ReadConsole

ReadConsoleInputEx

ReadFile

SetConsoleCP

SetConsoleOutputCP

WriteConsoleInput