Entrada por 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 entrada do teclado | Discute a entrada do teclado. |
Uso da entrada de teclado | Aborda 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 a identificação de localidade de entrada (chamada antes de identificação de layout do teclado) para o thread de chamada ou o processo atual. A identificação de localidade de entrada especifica uma localidade, bem como o layout físico do teclado. |
BlockInput | Impede que eventos de entrada de teclado e do mouse cheguem aos aplicativos. |
EnableWindow | Habilita ou desabilita a entrada de mouse e teclado para a janela ou controle especificado. Quando a entrada é desabilitada, a janela não recebe entrada, como cliques e pressionamentos de teclas do mouse. Quando a entrada está habilitada, a janela recebe todas as entradas. |
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 a GetAsyncKeyState. |
GetFocus | Recupera o identificador para a janela que tem o foco do teclado, se a janela estiver anexada à fila de mensagens do thread de chamada. |
GetKeyboardLayout | Recupera a identificação de localidade de entrada ativa (chamada antes de layout de teclado) para o thread especificado. Se o parâmetro idThread for zero, a identificação de localidade de entrada para o thread ativo retornará. |
GetKeyboardLayoutList | Recupera as identificações de localidade de entrada (chamadas antes de identificadores de layout de teclado) correspondentes ao conjunto atual de localidades de entrada no sistema. A função copia os identificadores do buffer especificado. |
GetKeyboardLayoutName | Recupera o nome da identificação de localidade de entrada ativa (chamada antes de layout de 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á operante, inoperante ou acionada (alternando a posição ativada, desativada 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 de teclado. |
LoadKeyboardLayout | Carrega uma nova identificação de localidade de entrada (chamada antes de layout de teclado) no sistema. Várias identificações de localidade de entrada podem ser carregadas por vez, mas apenas uma fica ativa por vez por processo. Carregar várias identificações de localidade de entrada possibilita alternar rapidamente entre elas. |
MapVirtualKey | Traduz (mapeia) um código de chave virtual em um código de varredura 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 uma identificação de localidade de entrada. |
OemKeyScan | Mapeia códigos OEMASCII de 0 a 0x0FF nos 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 tecla de acesso para todo o sistema. |
SendInput | Sintetiza pressionamentos de teclas, movimentos do mouse e cliques de botão. |
SetActiveWindow | Ativa uma janela. A janela deve ser anexada à fila de mensagens do thread de chamada. |
SetFocus | Define o foco do teclado para 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ções GetKeyboardState e GetKeyState. As alterações feitas nesta tabela não afetam a entrada do teclado em nenhum outro thread. |
ToAscii | Converte o código de tecla 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 de 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 tecla virtual e o estado do teclado especificados para o caractere ou caracteres correspondentes. A função converte o código usando a linguagem de entrada e o layout de teclado físico identificados pela identificação de localidade de entrada. |
ToUnicode | Converte o código de tecla 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 tecla virtual especificado e o estado do teclado para o caractere unicode ou caracteres correspondentes. |
UnloadKeyboardLayout | Descarrega uma identificação de localidade de entrada (chamada antes de layout de teclado). |
UnregisterHotKey | Libera uma tecla de acesso 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 de teclado físico identificados pela identificação 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 esse 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 tecla virtual correspondente e o estado de deslocamento para o teclado atual. |
Mensagens
Nome | Descrição |
---|---|
WM_GETHOTKEY | Determina a tecla de acesso associada à janela. |
WM_SETHOTKEY | Associa uma tecla de acesso à janela. Quando o usuário pressiona a tecla de acesso, o sistema ativa a janela. |
Notifications
Nome | Descrição |
---|---|
WM_ACTIVATE | Enviado à janela que está sendo ativada e à janela que está 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 de 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ção TranslateMessage. 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 WM_KEYUP é traduzida pela função TranslateMessage. WM_DEADCHAR especifica um código de caractere gerado por uma chave inativa. Uma tecla desativada é uma tecla que gera um caractere, como o caractere umlaut (ponto duplo), que é combinado com outro caractere para formar um caractere composto. Por exemplo, o caractere umlaut-O ( ) é gerado digitando a tecla inativa para o caractere umlaut e, em seguida, digitando a tecla O. |
WM_HOTKEY | Postado quando o usuário pressiona uma tecla de acesso registrada pela função RegisterHotKey. A mensagem é colocada na parte superior da fila de mensagens associada ao thread que registrou a tecla de acesso. |
WM_KEYDOWN | Postado na janela com o foco do teclado quando uma tecla que não é do sistema é pressionada. Uma tecla que não é do sistema é uma tecla que é pressionada quando a tecla ALT não é pressionada. |
WM_KEYUP | Postado na janela com o foco do teclado quando uma tecla que não é do sistema é liberada. Uma tecla que não é do sistema é uma tecla pressionada quando a tecla ALT não é pressionada ou uma tecla de teclado 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 ela ganhou o foco do teclado. |
WM_SYSDEADCHAR | Enviado para a janela com o foco do teclado quando uma mensagem WM_SYSKEYDOWN é traduzida pela função TranslateMessage. WM_SYSDEADCHAR especifica o código de caractere de uma tecla inativa do sistema, ou seja, uma tecla inativa que é pressionada enquanto a tecla ALT é mantida pressionada. |
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 mantém a tecla ALT pressionada e pressiona outra tecla. Também ocorre quando nenhuma janela tem o foco do teclado no momento. 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 solta a tecla que foi pressionada enquanto a tecla ALT estava pressionada. Também ocorre quando nenhuma janela tem o foco do teclado no momento. 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ção TranslateMessage. 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. |
INPUT | 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 de mouse simulado. |
Constantes
Nome | Descrição |
---|---|
Códigos de tecla virtual | Os nomes de constantes simbólicas, os valores hexadecimais e os equivalentes de mouse ou de teclado para os códigos de tecla virtual usados pelo sistema. Os códigos estão listados em ordem numérica. |