Função GetKeyboardState (winuser.h)

Copia o status das 256 chaves virtuais para o buffer especificado.

Sintaxe

BOOL GetKeyboardState(
  [out] PBYTE lpKeyState
);

Parâmetros

[out] lpKeyState

Tipo: PBYTE

A matriz de 256 bytes que recebe os dados status para cada chave virtual.

Valor retornado

Tipo: BOOL

Se a função for bem-sucedida, o valor retornado será diferente de zero.

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

Comentários

Um aplicativo pode chamar essa função para recuperar o status atual de todas as chaves virtuais. O status muda à medida que um thread remove mensagens de teclado de sua fila de mensagens. O status não é alterado à medida que as mensagens de teclado são postadas na fila de mensagens do thread, nem é alterada à medida que as mensagens de teclado são postadas ou recuperadas de filas de mensagens de outros threads. (Exceção: threads conectados por meio de AttachThreadInput compartilham o mesmo estado de teclado.)

Quando a função retorna, cada membro da matriz apontada pelo parâmetro lpKeyState contém status dados de uma chave virtual. Se o bit de ordem alta for 1, a chave estará inativa; caso contrário, ele está em cima. Se a tecla for uma tecla de alternância, por exemplo, CAPS LOCK, o bit de ordem baixa será 1 quando a chave for alternada e 0 se a chave estiver desativada. O bit de ordem baixa não tem sentido para teclas que não são de alternância. Diz-se que uma tecla de alternância é alternada quando está ativada. A luz indicadora de uma tecla de alternância (se houver) no teclado estará ativada quando a tecla for alternada e desativada quando a tecla estiver destoativada.

Para recuperar status informações de uma chave individual, use a função GetKeyState. Para recuperar o estado atual de uma tecla individual, independentemente de a mensagem de teclado correspondente ter sido recuperada da fila de mensagens, use a função GetAsyncKeyState .

Um aplicativo pode usar as constantes de código de chave virtual VK_SHIFT, VK_CONTROL e VK_MENU como índices na matriz apontada por lpKeyState. Isso fornece a status das teclas SHIFT, CTRL ou ALT sem distinguir entre esquerda e direita. Um aplicativo também pode usar as seguintes constantes de código de chave virtual como índices para distinguir entre as instâncias esquerda e direita dessas chaves:

VK_LSHIFT
VK_RSHIFT
VK_LCONTROL
VK_RCONTROL
VK_LMENU
VK_RMENU
 

Essas constantes de distinção esquerda e direita estão disponíveis para um aplicativo somente por meio das funções GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState e MapVirtualKey .

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
Conjunto de APIs ext-ms-win-ntuser-rawinput-l1-1-0 (introduzido no Windows 10, versão 10.0.14393)

Confira também