Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Este documento descreve a funcionalidade da plataforma de console que não faz mais parte do roteiro do nosso ecossistema. Não recomendamos usar esse conteúdo em novos produtos, mas continuaremos a dar suporte aos usos existentes para o futuro indefinido. Nossa solução moderna preferida se concentra em sequências de terminal virtual para a máxima compatibilidade em cenários de plataforma cruzada. Você pode encontrar mais informações sobre essa decisão de design em nosso console clássico versus documento de terminal virtual .
Um buffer de funções de entrada de console de baixo nível contém registros de entrada que podem incluir informações sobre eventos de teclado, mouse, redimensionamento de buffer, foco e menu. As funções de baixo nível fornecem acesso direto ao buffer de entrada, ao contrário das funções de alto nível que filtram e processam os dados do buffer de entrada, descartando todas, exceto a entrada do teclado.
Há cinco funções de baixo nível para acessar o buffer de entrada de um console:
- ReadConsoleInput
- PeekConsoleInput
- GetNumberOfConsoleInputEvents
- WriteConsoleInput
- FlushConsoleInputBuffer
As funções ReadConsoleInput, PeekConsoleInput e WriteConsoleInput usam a estrutura INPUT_RECORD para ler ou gravar em um buffer de entrada.
A seguir estão as descrições das funções de entrada de console de baixo nível.
| Função | Descrição |
|---|---|
| ReadConsoleInput | Lê e remove registros de entrada de um buffer de entrada. A função não retorna até que pelo menos um registro esteja disponível para leitura. Em seguida, todos os registros disponíveis são transferidos para o buffer do processo de chamada até que não haja mais registros disponíveis ou o número especificado de registros tenha sido lido. Os registros não lidos permanecem no buffer de entrada para a próxima operação de leitura. A função relata o número total de registros que foram lidos. Para obter um exemplo que usa ReadConsoleInput, consulte Lendo eventos de buffer de entrada. |
| PeekConsoleInput | Lê sem remover os registros de entrada pendentes em um buffer de entrada. Todos os registros disponíveis até o número especificado são copiados para o buffer do processo de chamada. Se nenhum registro estiver disponível, a função retornará imediatamente. A função relata o número total de registros que foram lidos. |
| GetNumberOfConsoleInputEvents | Determina o número de registros de entrada não lidos em um buffer de entrada. |
| WriteConsoleInput | Coloca registros de entrada no buffer de entrada atrás de quaisquer registros pendentes no buffer. O buffer de entrada cresce dinamicamente, se necessário, para conter tantos registros quanto gravados. Para usar essa função, o identificador de buffer de entrada especificado deve ter o acesso GENERIC_WRITE correto. |
| FlushConsoleInputBuffer | Descarta todos os eventos não lidos no buffer de entrada. Para usar essa função, o identificador de buffer de entrada especificado deve ter o acesso GENERIC_WRITE correto. |
Um thread do processo de um aplicativo pode executar uma operação de espera para aguardar a entrada estar disponível em um buffer de entrada. Para iniciar uma operação de espera, especifique um identificador para o buffer de entrada em uma chamada para qualquer uma das funções de espera. Essas funções podem retornar quando o estado de um ou mais objetos é sinalizado. O estado de um identificador de entrada do console fica sinalizado quando há registros não lidos em seu buffer de entrada. O estado é redefinido para não sinalizado quando o buffer de entrada fica vazio. Se não houver nenhuma entrada disponível, o thread de chamada entrará em um estado de espera eficiente, consumindo muito pouco tempo de processador enquanto aguarda as condições da operação de espera serem atendidas.