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) |