Função GetKeyNameTextA (winuser.h)

Recupera uma cadeia de caracteres que representa o nome de uma chave.

Sintaxe

int GetKeyNameTextA(
  [in]  LONG  lParam,
  [out] LPSTR lpString,
  [in]  int   cchSize
);

Parâmetros

[in] lParam

Tipo: LONG

O segundo parâmetro da mensagem de teclado (como WM_KEYDOWN) a ser processada. A função interpreta as seguintes posições de bit no lParam.

Bits Significado
16-23 O código de verificação. O valor depende do OEM.
24 Especifica se a tecla é uma tecla estendida, como as teclas ALT e CTRL à direita que aparecem em um teclado avançado de 101 ou 102 teclas. O valor será 1 se for uma tecla estendida; caso contrário, é 0.
25 Bit "Não se importa". O aplicativo que chama essa função define esse bit para indicar que a função não deve distinguir entre as teclas CTRL e SHIFT esquerda e direita, por exemplo.

Para obter mais detalhes, consulte Sinalizadores de mensagem de pressionamento de tecla.

[out] lpString

Tipo: LPTSTR

O buffer que receberá o nome da chave.

[in] cchSize

Tipo: int

O comprimento máximo, em caracteres, do nome da chave, incluindo o caractere nulo de terminação. (Esse parâmetro deve ser igual ao tamanho do buffer apontado pelo parâmetro lpString .)

Retornar valor

Tipo: int

Se a função for bem-sucedida, uma cadeia de caracteres terminada em nulo será copiada para o buffer especificado e o valor retornado será o comprimento da cadeia de caracteres, em caracteres, sem contar o caractere nulo de terminação.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

O formato da cadeia de caracteres de chave-nome depende do layout do teclado atual.

O layout do teclado mantém uma lista de nomes na forma de cadeias de caracteres para teclas com nomes maiores que um único caractere. O nome da tecla é traduzido de acordo com o layout de teclado ativo no momento, portanto, a função pode retornar resultados diferentes para layouts de teclado diferentes.

O nome de uma chave de caractere é o próprio caractere. Os nomes das chaves mortas estão escritos na íntegra.

Esse método pode não funcionar corretamente com alguns layouts de teclado que produzem vários caracteres (ou seja, ligaturas) e/ou caracteres Unicode suplementares impressos em uma única tecla. Além disso, as chaves mapeadas para o 'A'. Os códigos de chave virtual Z são convertidos em "A" maiúsculas. Caracteres Z, independentemente do layout do teclado atual. Use os métodos ToUnicode ou ToUnicodeEx nesses casos.

O cabeçalho winuser.h define GetKeyNameText 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

   
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

Entrada por teclado

Layouts de teclado

Exemplos de layout de teclado

ToUnicode

ToUnicodeEx