Compartilhar via


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 processado. 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 Indica 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 chave 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 encerramento. (Esse parâmetro deve ser igual ao tamanho do buffer apontado pelo parâmetro lpString.)

Valor de retorno

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.

Observações

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

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 chave é traduzido de acordo com o layout do teclado atualmente ativo, 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 são escritos na íntegra.

Chaves de caractere mapeadas para o 'A'. Os códigos de chave virtual de Z' são traduzidos para a <LETRA MAIÚSCULA LATINA 0+0041 A>..<caracteres> U+005A LATIN CAPITAL LETTER Z, independentemente do layout atual do teclado. Nesse caso, use os métodos ToUnicode ou ToUnicodeEx para obter o caractere da tecla correspondente.

Esse método pode não funcionar corretamente com alguns layouts de teclado que produzem vários caracteres (como ligaturas) ou caracteres Unicode suplementares em uma única tecla.

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 do 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 Conventions for Function Prototypes.

Requisitos

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

Consulte também

de entrada do teclado

layouts de teclado

exemplos de layout de teclado

ToUnicode

toUnicodeEx