Função VkKeyScanExA (winuser.h)

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.

Sintaxe

SHORT VkKeyScanExA(
  [in] CHAR ch,
  [in] HKL  dwhkl
);

Parâmetros

[in] ch

Tipo: TCHAR

O caractere a ser convertido em um código de chave virtual.

[in] dwhkl

Tipo: HKL

Identificador de localidade de entrada usado para traduzir o caractere. Esse parâmetro pode ser qualquer identificador de localidade de entrada retornado anteriormente pela função LoadKeyboardLayout .

Retornar valor

Tipo: SHORT

Se a função for bem-sucedida, o byte de baixa ordem do valor retornado conterá o código de chave virtual e o byte de alta ordem conterá o estado shift, que pode ser uma combinação dos bits de sinalizador a seguir.

Valor retornado Descrição
1
Qualquer tecla SHIFT é pressionada.
2
Qualquer tecla CTRL é pressionada.
4
Qualquer tecla ALT é pressionada.
8
A tecla Hankaku é pressionada
16
Reservado (definido pelo driver de layout do teclado).
32
Reservado (definido pelo driver de layout do teclado).
 

Se a função não encontrar nenhuma chave que se traduza no código de caractere passado, os bytes de baixa ordem e de alta ordem contêm –1.

Comentários

O identificador de localidade de entrada é um conceito mais amplo do que um layout de teclado, pois também pode abranger um conversor de fala em texto, um método de entrada Editor (IME) ou qualquer outra forma de entrada.

Para layouts de teclado que usam a tecla ALT à direita como uma tecla de deslocamento (por exemplo, o layout do teclado francês), o estado de deslocamento é representado pelo valor 6, pois a tecla ALT à direita é convertida internamente em CTRL+ALT.

As traduções para o teclado numérico (VK_NUMPAD0 por meio de VK_DIVIDE) são ignoradas. Essa função destina-se a converter caracteres em pressionamentos de tecla somente da seção de teclado main. Por exemplo, o caractere "7" é convertido em VK_7, não em VK_NUMPAD7.

VkKeyScanEx é usado por aplicativos que enviam caracteres usando as mensagens WM_KEYUP e WM_KEYDOWN .

Observação

O cabeçalho winuser.h define VkKeyScanEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll

Confira também