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.
O comportamento das funções de console de alto nível é afetado pelos modos de entrada e saída do console. Todos os seguintes modos de entrada do console são habilitados para o buffer de entrada de um console quando um console é criado:
- Modo de entrada de linha
- Modo de entrada processado
- Modo de entrada de eco
Ambos os seguintes modos de saída do console são habilitados para um buffer de tela do console quando ele é criado:
- Modo de saída processado
- Encapsulamento no modo de saída EOL
Todos os três modos de entrada, juntamente com o modo de saída processado, foram projetados para funcionar em conjunto. É melhor habilitar ou desabilitar todos esses modos como um grupo. Quando todos estão habilitados, diz-se que o aplicativo está no modo "cozido", o que significa que a maior parte do processamento é tratada para o aplicativo. Quando todos estão desabilitados, o aplicativo está no modo "bruto", o que significa que a entrada não está filtrada e qualquer processamento é deixado para o aplicativo.
Um aplicativo pode usar a função GetConsoleMode para determinar o modo atual do buffer de entrada ou do buffer de tela de um console. Você pode habilitar ou desabilitar qualquer um desses modos usando os seguintes valores na função SetConsoleMode . Observe que definir o modo de saída de um buffer de tela não afeta o modo de saída de outros buffers de tela.
Se o parâmetro hConsoleHandle for um identificador de entrada, o modo poderá ser um ou mais dos valores a seguir. Quando um console é criado, todos os modos de entrada, exceto ENABLE_WINDOW_INPUT e ENABLE_VIRTUAL_TERMINAL_INPUT , são habilitados por padrão.
| Valor | Significado |
|---|---|
| ENABLE_ECHO_INPUT 0x0004 | Os caracteres lidos pela função ReadFile ou ReadConsole são gravados no buffer de tela ativo à medida que são digitado no console. Esse modo só poderá ser usado se o modo ENABLE_LINE_INPUT também estiver habilitado. |
| ENABLE_INSERT_MODE 0x0020 | Quando habilitado, o texto inserido em uma janela do console será inserido no local atual do cursor e todo o texto após esse local não será substituído. Quando desabilitado, todo o texto a seguir será substituído. |
| ENABLE_LINE_INPUT 0x0002 | A função ReadFile ou ReadConsole retorna somente quando um caractere de retorno de carro é lido. Se esse modo estiver desabilitado, as funções retornarão quando um ou mais caracteres estiverem disponíveis. |
| ENABLE_MOUSE_INPUT 0x0010 | Se o ponteiro do mouse estiver dentro das bordas da janela do console e a janela tiver o foco do teclado, os eventos do mouse gerados pelo movimento do mouse e pressionamentos de botão serão colocados no buffer de entrada. Esses eventos são descartados por ReadFile ou ReadConsole, mesmo quando esse modo está habilitado. A função ReadConsoleInput pode ser usada para ler MOUSE_EVENT registros de entrada do buffer de entrada. |
| 0x0001 ENABLE_PROCESSED_INPUT | CTRL+C é processado pelo sistema e não é colocado no buffer de entrada. Se o buffer de entrada estiver sendo lido por ReadFile ou ReadConsole, outras chaves de controle serão processadas pelo sistema e não serão retornadas no buffer ReadFile ou ReadConsole . Se o modo ENABLE_LINE_INPUT também estiver habilitado, os caracteres backspace, retorno de carro e feed de linha serão tratados pelo sistema. |
| ENABLE_QUICK_EDIT_MODE 0x0040 | Esse sinalizador permite que o usuário use o mouse para selecionar e editar texto. Para habilitar esse modo, use ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS. Para desabilitar esse modo, use ENABLE_EXTENDED_FLAGS sem esse sinalizador. |
| ENABLE_WINDOW_INPUT 0x0008 | Interações do usuário que alteram o tamanho do buffer de tela do console são relatadas no buffer de entrada do console. Informações sobre esses eventos podem ser lidas do buffer de entrada por aplicativos usando a função ReadConsoleInput , mas não por aqueles que usam ReadFile ou ReadConsole. |
| ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200 | Definir esse sinalizador direciona o mecanismo de processamento do Terminal Virtual para converter a entrada do usuário recebida pela janela do console em Sequências de Terminal Virtual do Console que podem ser recuperadas por um aplicativo de suporte por meio de funções ReadFile ou ReadConsole . O uso típico desse sinalizador destina-se em conjunto com ENABLE_VIRTUAL_TERMINAL_PROCESSING no identificador de saída para se conectar a um aplicativo que se comunica exclusivamente por meio de sequências de terminal virtual. |
Se o parâmetro hConsoleHandle for um identificador de buffer de tela, o modo poderá ser um ou mais dos valores a seguir. Quando um buffer de tela é criado, ambos os modos de saída são habilitados por padrão.
| Valor | Significado |
|---|---|
| ENABLE_PROCESSED_OUTPUT 0x0001 | Os caracteres escritos pela função WriteFile ou WriteConsole ou ecoados pela função ReadFile ou ReadConsole são analisados para sequências de controle ASCII e a ação correta é executada. Os caracteres backspace, tab, bell, retorno de carro e feed de linha são processados. Ele deve ser habilitado ao usar sequências de controle ou quando ENABLE_VIRTUAL_TERMINAL_PROCESSING está definido. |
| ENABLE_WRAP_AT_EOL_OUTPUT 0x0002 | Ao gravar com WriteFile ou WriteConsole ou ecoar com ReadFile ou ReadConsole, o cursor passa para o início da próxima linha quando atinge o final da linha atual. Isso faz com que as linhas exibidas na janela do console rolem para cima automaticamente quando o cursor avança além da última linha na janela. Ele também faz com que o conteúdo do buffer de tela do console role para cima (.. /descartando a linha superior do buffer de tela do console) quando o cursor avança além da última linha no buffer de tela do console. Se esse modo estiver desabilitado, o último caractere na linha será substituído com quaisquer caracteres subsequentes. |
| ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 | Ao gravar com WriteFile ou WriteConsole, os caracteres são analisados para VT100 e sequências de caracteres de controle semelhantes que controlam o movimento do cursor, o modo de cor/fonte e outras operações que também podem ser executadas por meio das APIs de Console existentes. Para obter mais informações, consulte Sequências de Terminal Virtual do Console. Verifique se ENABLE_PROCESSED_OUTPUT está definido ao usar esse sinalizador. |
| DISABLE_NEWLINE_AUTO_RETURN 0x0008 | Ao gravar com WriteFile ou WriteConsole, isso adiciona um estado adicional ao encapsulamento de fim de linha que pode atrasar a movimentação do cursor e as operações de rolagem do buffer. Normalmente, quando ENABLE_WRAP_AT_EOL_OUTPUT é definido e o texto atinge o final da linha, o cursor será movido imediatamente para a próxima linha e o conteúdo do buffer rolará para cima por uma linha. Em contraste com esse conjunto de sinalizadores, o cursor não se move para a próxima linha e a operação de rolagem não é executada. O caractere escrito será impresso na posição final na linha e o cursor permanecerá acima desse caractere como se ENABLE_WRAP_AT_EOL_OUTPUT estivesse desativado, mas o próximo caractere imprimível será impresso como se ENABLE_WRAP_AT_EOL_OUTPUT estivesse ativado. Nenhuma substituição ocorrerá. Especificamente, o cursor avança rapidamente para a linha a seguir, um rolamento é executado se necessário, o caractere é impresso e o cursor avança mais uma posição. O uso típico desse sinalizador destina-se em conjunto com a configuração ENABLE_VIRTUAL_TERMINAL_PROCESSING para emular melhor um emulador de terminal no qual escrever o caractere final na tela (.. /no canto inferior direito) sem disparar um rolamento imediato é o comportamento desejado. |
| ENABLE_LVB_GRID_WORLDWIDE 0x0010 | As APIs para escrever atributos de caractere, incluindo WriteConsoleOutput e WriteConsoleOutputAttribute , permitem que o uso de sinalizadores de atributos de caractere ajuste a cor do primeiro plano e do plano de fundo do texto. Além disso, um intervalo de sinalizadores DBCS foi especificado com o prefixo COMMON_LVB. Historicamente, esses sinalizadores funcionavam apenas em páginas de código DBCS para idiomas chineses, japoneses e coreanos. Com exceção dos sinalizadores de bytes à esquerda e de bytes à direita, os sinalizadores restantes que descrevem o desenho da linha e o vídeo inverso (.. /swap foreground and background colors) pode ser útil para outras linguagens enfatizar partes da saída. Definir esse sinalizador de modo de console permitirá que esses atributos sejam usados em cada página de código em cada idioma. Ele está desativado por padrão para manter a compatibilidade com aplicativos conhecidos que historicamente aproveitaram o console ignorando esses sinalizadores em computadores não CJK para armazenar bits nesses campos para suas próprias finalidades ou por acidente. Observe que o uso do modo ENABLE_VIRTUAL_TERMINAL_PROCESSING pode resultar em sinalizadores de vídeo reversos e de grade LVB definidos enquanto esse sinalizador ainda estiver desativado se o aplicativo anexado solicitar vídeos subjacentes ou inversos por meio de Sequências de Terminal Virtual do Console. |