Compartilhar via


Função ReadConsoleInputEx

Lê os dados de um buffer de entrada do console e os remove do buffer, com comportamento configurável.

Observação Essa função não tem nenhuma biblioteca de importação associada. Essa função está disponível como os recursos chamados ReadConsoleInputExA e ReadConsoleInputExW em Kernel32.dll. Você deve usar as funções LoadLibrary e GetProcAddress para vincular dinamicamente ao Kernel32.dll.

Sintaxe

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

Parâmetros

hConsoleInput [in]
Um identificador do buffer da entrada do console. O identificador deve ter o direito de acesso GENERIC_READ. Para saber mais, confira Segurança de buffer e direitos de acesso do console.

lpBuffer [out]
Um ponteiro para uma matriz de estruturas INPUT_RECORD que recebe os dados do buffer de entrada.

nLength [in]
O tamanho da matriz apontada pelo parâmetro lpBuffer, em elementos de matriz.

lpNumberOfEventsRead [out]
Um ponteiro para uma variável que recebe o número de registros de entrada lidos.

wFlags [in]

Um conjunto de sinalizadores (associados por OR) que especificam o comportamento de leitura do console.

Valor Significado
CONSOLE_READ_NOREMOVE 0x0001 Deixe os eventos no buffer de entrada (como em PeekConsoleInput)
CONSOLE_READ_NOWAIT 0x0002 Retorna imediatamente, mesmo quando não há eventos no buffer de entrada.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Esta função é uma versão configurável do ReadConsoleInput. Consulte os comentários de ReadConsoleInput para obter detalhes operacionais adicionais.

Chamar ReadConsoleInputEx com o sinalizador CONSOLE_READ_NOMOVE | CONSOLE_READ_NOWAIT é equivalente a chamar PeekConsoleInput.

Essa função não existe nos cabeçalhos do Console do Windows. Para acessá-los a partir de um aplicativo C ou C++, inclua as seguintes declarações e faça o vínculo dinâmico do kernel32.dll conforme observado acima.

#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 com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho nenhuma, ver comentários
Biblioteca nenhuma, ver comentários
DLL Kernel32.dll
Nomes Unicode e ANSI ReadConsoleInputExW (Unicode) e ReadConsoleInputExA (ANSI)

Confira também

Funções de Console

FlushConsoleInputBuffer

GetNumberOfConsoleInputEvents

INPUT_RECORD

Funções de entrada do console de baixo nível

ReadConsoleInput

PeekConsoleInput

ReadConsole

ReadFile

SetConsoleCP

SetConsoleOutputCP

WriteConsoleInput