Compartilhar via


Entrada do teclado

Esta seção descreve como o sistema gera entrada de teclado e como um aplicativo recebe e processa essa entrada.

Nesta seção

Nome Descrição
sobre de entrada de teclado Discute a entrada do teclado.
usando de entrada de teclado Aborda as tarefas associadas à entrada do teclado.
Referência de entrada do teclado Contém a referência de API.

Funções

Nome Descrição
ActivateKeyboardLayout Define o identificador de localidade de entrada (anteriormente chamado de identificador de layout do teclado) para o thread de chamada ou o processo atual. O identificador de localidade de entrada especifica uma localidade, bem como o layout físico do teclado.
BlockInput Impede que eventos de entrada de teclado e mouse atinjam aplicativos.
EnableWindow Habilita ou desabilita a entrada do mouse e do teclado na janela ou controle especificados. Quando a entrada é desabilitada, a janela não recebe entrada, como cliques e pressionamentos de tecla. Quando a entrada é habilitada, a janela recebe toda a entrada.
GetActiveWindow Recupera o identificador de janela para a janela ativa anexada à fila de mensagens do thread de chamada.
GetAsyncKeyState Determina se uma tecla está para cima ou para baixo no momento em que a função é chamada e se a tecla foi pressionada após uma chamada anterior para GetAsyncKeyState.
GetFocus Recupera o identificador da janela que tem o foco do teclado, se a janela estiver anexada à fila de mensagens do thread de chamada.
GetKeyboardLayout Recupera o identificador de localidade de entrada ativo (anteriormente chamado de layout do teclado) para o thread especificado. Se o parâmetro idThread for zero, o identificador de localidade de entrada para o thread ativo será retornado.
GetKeyboardLayoutList Recupera os identificadores de localidade de entrada (anteriormente chamados de identificadores de layout de teclado) correspondentes ao conjunto atual de localidades de entrada no sistema. A função copia os identificadores para o buffer especificado.
GetKeyboardLayoutName Recupera o nome do identificador de localidade de entrada ativo (anteriormente chamado de layout do teclado).
GetKeyboardState Copia o status das 256 chaves virtuais para o buffer especificado.
GetKeyNameText Recupera uma cadeia de caracteres que representa o nome de uma chave.
GetKeyState Recupera o status da chave virtual especificada. O status especifica se a tecla está para cima, para baixo ou alternada (ativada, desativada alternando sempre que a tecla é pressionada).
GetLastInputInfo Recupera a hora do último evento de entrada.
IsWindowEnabled Determina se a janela especificada está habilitada para entrada de mouse e teclado.
LoadKeyboardLayout Carrega um novo identificador de localidade de entrada (anteriormente chamado de layout de teclado) no sistema. Vários identificadores de localidade de entrada podem ser carregados por vez, mas apenas um por processo está ativo por vez. Carregar vários identificadores de localidade de entrada possibilita alternar rapidamente entre eles.
MapVirtualKey Converte (mapas) um código de chave virtual em um código de verificação ou valor de caractere ou converte um código de verificação em um código de chave virtual.
Para especificar um identificador para o layout do teclado a ser usado para traduzir o código especificado, use a função MapVirtualKeyEx.
MapVirtualKeyEx Mapeia um código de chave virtual para um código de verificação ou valor de caractere ou converte um código de verificação em um código de chave virtual. A função converte os códigos usando o idioma de entrada e um identificador de localidade de entrada.
OemKeyScan Mapeia códigos OEMASCII 0 a 0x0FF para os códigos de verificação OEM e estados de deslocamento. A função fornece informações que permitem que um programa envie texto OEM para outro programa simulando a entrada do teclado.
RegisterHotKey Define uma chave quente em todo o sistema.
SendInput Sintetiza pressionamentos de teclas, movimentos do mouse e cliques no botão.
SetActiveWindow Ativa uma janela. A janela deve ser anexada à fila de mensagens do thread de chamada.
SetFocus Define o foco do teclado como a janela especificada. A janela deve ser anexada à fila de mensagens do thread de chamada.
SetKeyboardState Copia uma matriz de 256 bytes de estados de tecla de teclado na tabela de estado de entrada do teclado do thread de chamada. Essa é a mesma tabela acessada pelas funçõesGetKeyboardState eGetKeyState. As alterações feitas nesta tabela não afetam a entrada do teclado em nenhum outro thread.
ToAscii Converte o código de chave virtual e o estado do teclado especificados para o caractere ou caracteres correspondentes. A função converte o código usando o idioma de entrada e o layout do teclado físico identificados pelo identificador de layout do teclado.
Para especificar um identificador para o layout do teclado a ser usado para traduzir o código especificado, use a função ToAsciiEx.
ToAsciiEx Converte o código de chave virtual e o estado do teclado especificados para o caractere ou caracteres correspondentes. A função converte o código usando o idioma de entrada e o layout do teclado físico identificados pelo identificador de localidade de entrada.
ToUnicode Converte o código de chave virtual especificado e o estado do teclado para o caractere Unicode ou caracteres correspondentes.
Para especificar um identificador para o layout do teclado a ser usado para traduzir o código especificado, use a função ToUnicodeEx.
ToUnicodeEx Converte o código de chave virtual especificado e o estado do teclado para o caractere Unicode ou caracteres correspondentes.
UnloadKeyboardLayout Descarrega um identificador de localidade de entrada (anteriormente chamado de layout de teclado).
UnregisterHotKey Libera uma chave ativa registrada anteriormente pelo thread de chamada.
VkKeyScanEx Converte um caractere para o código de chave virtual correspondente e o estado de deslocamento. A função converte o caractere usando a linguagem de entrada e o layout do teclado físico identificados pelo identificador de localidade de entrada.

As funções a seguir são obsoletas.

Função Descrição
GetKBCodePage Recupera a página de código atual.
keybd_event Sintetiza um pressionamento de tecla. O sistema pode usar um pressionamento de tecla sintetizado para gerar uma mensagem WM_KEYUP ou WM_KEYDOWN. O manipulador de interrupção do driver de teclado chama a função keybd_event.
VkKeyScan Converte um caractere para o código de chave virtual correspondente e o estado de deslocamento para o teclado atual.

Mensagens

Nome Descrição
WM_GETHOTKEY Determina a tecla de acesso associada a uma janela.
WM_SETHOTKEY Associa uma chave quente à janela. Quando o usuário pressiona a tecla de acesso, o sistema ativa a janela.

Notificações

Nome Descrição
WM_ACTIVATE Enviado para a janela que está sendo ativada e a janela sendo desativada. Se as janelas usarem a mesma fila de entrada, a mensagem será enviada de forma síncrona, primeiro para o procedimento de janela da janela de nível superior que está sendo desativada e, em seguida, para o procedimento de janela da janela de nível superior que está sendo ativada. Se as janelas usarem filas de entrada diferentes, a mensagem será enviada de forma assíncrona, de modo que a janela seja ativada imediatamente.
WM_APPCOMMAND Notifica uma janela em que o usuário gerou um evento de comando do aplicativo, por exemplo, clicando em um botão de comando do aplicativo usando o mouse ou digitando uma tecla de comando do aplicativo no teclado.
WM_CHAR Postado na janela com o foco do teclado quando uma mensagem WM_KEYDOWN é traduzida pela funçãoTranslateMessage. A mensagem WM_CHAR contém o código de caractere da tecla que foi pressionada.
WM_DEADCHAR Postado na janela com o foco do teclado quando uma mensagem de WM_KEYUP é traduzida pela funçãoTranslateMessage. WM_DEADCHAR especifica um código de caractere gerado por uma chave morta. Uma chave morta é uma chave que gera um caractere, como o umlaut (ponto duplo), que é combinado com outro caractere para formar um caractere composto. Por exemplo, o caractere umlaut-O ( ) é gerado digitando a chave morta para o caractere umlaut e digitando a chave O.
WM_HOTKEY Postado quando o usuário pressiona uma tecla de acesso registrada pela funçãoRegisterHotKey. A mensagem é colocada na parte superior da fila de mensagens associada ao thread que registrou a chave ativa.
WM_KEYDOWN Postado na janela com o foco do teclado quando uma tecla não sistema é pressionada. Uma tecla não sistema é uma tecla que é pressionada quando a tecla ALT não é pressionada.
WM_KEYUP Postado na janela com o foco do teclado quando uma chave não sistema é lançada. Uma tecla não sistema é uma tecla que é pressionada quando a tecla ALT não é pressionada ou uma tecla de teclado que é pressionada quando uma janela tem o foco do teclado.
WM_KILLFOCUS Enviado para uma janela imediatamente antes de perder o foco do teclado.
WM_SETFOCUS Enviado para uma janela depois que ele ganhou o foco do teclado.
WM_SYSDEADCHAR Enviado para a janela com o foco do teclado quando uma mensagem de WM_SYSKEYDOWN é traduzida pela funçãoTranslateMessage. WM_SYSDEADCHAR especifica o código de caractere de uma chave morta do sistema, ou seja, uma tecla morta que é pressionada enquanto mantém pressionada a tecla ALT.
WM_SYSKEYDOWN Postado na janela com o foco do teclado quando o usuário pressiona a tecla F10 (que ativa a barra de menus) ou segura a tecla ALT e pressiona outra tecla. Ele também ocorre quando nenhuma janela atualmente tem o foco do teclado; nesse caso, a mensagem WM_SYSKEYDOWN é enviada para a janela ativa. A janela que recebe a mensagem pode distinguir entre esses dois contextos verificando o código de contexto no parâmetro lParam.
WM_SYSKEYUP Postado na janela com o foco do teclado quando o usuário libera uma tecla que foi pressionada enquanto a tecla ALT estava pressionada. Ele também ocorre quando nenhuma janela atualmente tem o foco do teclado; nesse caso, a mensagem WM_SYSKEYUP é enviada para a janela ativa. A janela que recebe a mensagem pode distinguir entre esses dois contextos verificando o código de contexto no parâmetro lParam.
WM_UNICHAR Postado na janela com o foco do teclado quando uma mensagem WM_KEYDOWN é traduzida pela funçãoTranslateMessage. A mensagem WM_UNICHAR contém o código de caractere da tecla que foi pressionada.

Estruturas

Nome Descrição
HARDWAREINPUT Contém informações sobre uma mensagem simulada gerada por um dispositivo de entrada diferente de um teclado ou mouse.
de ENTRADA Contém informações usadas para sintetizar eventos de entrada, como pressionamentos de tecla, movimento do mouse e cliques do mouse.
KEYBDINPUT Contém informações sobre um evento de teclado simulado.
LASTINPUTINFO Contém a hora da última entrada.
MOUSEINPUT Contém informações sobre um evento simulado do mouse.

Constantes

Nome Descrição
códigos Virtual-Key Os nomes de constante simbólicos, valores hexadecimal e equivalentes de mouse ou teclado para os códigos de chave virtual usados pelo sistema. Os códigos são listados em ordem numérica.

Consulte também

  • sobre de entrada de teclado