Como saber se a tecla Caps Lock está ativada, usando linguagem C?

2 respostas Resolvido
programação
P

Como saber se a tecla Caps Lock está ativada, usando linguagem C?
Não dá pra fazer ` if (GetAsyncKeyState(VK_CAPITAL) == -32768){

}` porque isso só vai retonar verdadeiro se a tecla estiver sendo pressionada, preciso de alguma forma de descobrir se a tecla CAPS LOCK está ativa.
Agradeço desde já.

2 Respostas

TerraSkilll
Solucao aceita

No Windows, você pode usar a função GetKeyState. Mas você precisa fazer uma comparação de bits, não do valor retornado pela função (que indica se a tecla está pressionada, como você mesmo reparou). Tente:

if ((GetKeyState(VK_CAPITAL) & 0x0001)!=0)
//capslock está ativa
   else
//capslock está inativa

Vi em: https://vcpptips.wordpress.com/2009/01/19/how-to-check-the-caps-lock-is-on-or-off/

Documentação de GetKeyState: https://msdn.microsoft.com/en-us/library/ms646301(VS.85).aspx

Abraço

P

Perfeito fera. Havia encontrado a mesma resposta em um site gringo. Vlw

Criado 11 de setembro de 2017
Ultima resposta 13 de set. de 2017
Respostas 2
Participantes 2