Partilhar via


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 de status de cada chave virtual.

Valor de retorno

Tipo: BOOL

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

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

Observações

Um aplicativo pode chamar essa função para recuperar o status atual de todas as chaves virtuais. O status é alterado conforme 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 do teclado.)

Quando a função retorna, cada membro da matriz apontado pelo parâmetro lpKeyState contém dados de status para uma chave virtual. Se o bit de ordem alta for 1, a chave estará inoperante; caso contrário, ele está em cima. Se a chave 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 chaves sem alternância. Diz-se que uma chave 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 estiver alternada e desativada quando a tecla estiver desativada.

Para recuperar informações de status de uma chave individual, use a função GetKeyState . Para recuperar o estado atual de uma chave 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 o status das teclas SHIFT, CTRL ou ALT sem distinguir entre a esquerda e a 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 .

Requirements

Requirement Value
Cliente mínimo suportado Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo compatível Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
Header winuser.h (inclua Windows.h)
Library User32.lib
de DLL User32.dll
Conjunto de API ext-ms-win-ntuser-rawinput-l1-1-0 (introduzido no Windows 10, versão 10.0.14393)

Consulte também