Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
138
Assunto : Visual Basic
Titulo: Como controlar o Num Lock via código

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Em um programa que precise de muita digitação numérica, garantir que o Num Lock esteja ligado quando o programa se iniciar pode ser bem útil. Isso é feito com chamadas de API.

Em um módulo colocamos o seguinte código :

Public Const VK_NUMLOCK = &H90

Public Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type

Public kbArray As KeyboardBytes

Public Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Public Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long


As funções GetKeyboardState e SetKeyboardState respectivamente lêem e alteram o estado das teclas no teclado

A função GetKeyboardState resulta em um vetor de 255 posições contendo o estado do teclado. Esse vetor precisa ser definido como um Type, da forma como está acima. No código acima criamos uma variável kbArray deste tipo que será usada durante o programa.

Vamos agora fazer 3 botões : 1 para ligar, outro para desligar e um terceiro para inverter o estado do Num Lock. Veja :


Private Sub cmdDesligar_Click()
GetKeyboardState kbArray
kbArray.kbByte(VK_NUMLOCK) = 0
SetKeyboardState kbArray
End Sub

A constante VK_NUMLOCK (&H90) contém na verdade a posição no vetor em que está o byte relativo a tecla Num Lock. O que fizemos neste código então foi ler o estado do Num Lock, seta-lo para 0 (desligado) e atribuir o estado novamente ao teclado.

Partindo deste exemplo, ligar o Num Lock é simples :

Private Sub cmdLigar_Click()
GetKeyboardState kbArray
kbArray.kbByte(VK_NUMLOCK) = 1
SetKeyboardState kbArray
End Sub

Mesmo código que o anterior, mas usando 1 ao invés de 0, para desta forma ligar o Num Lock.

Já no 3o botão precisaremos testar se ele está ligado ou desligado. Veja :

Private Sub cmdInverter_Click()
GetKeyboardState kbArray
kbArray.kbByte(VK_NUMLOCK) = IIf(kbArray.kbByte(VK_NUMLOCK) = 1, 0, 1)
SetKeyboardState kbArray
End Sub

O teste foi feito com a função IIF do VB, capaz de realizar um IF em uma linha e devolver um valor de acordo com o resultado.


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 5/26/2019 2:07:00 AM
nome: BAeUbHSztzaseg
email: homero79@yahoo.com
comentário:
Do you know the number for ? http://xnxx.in.net/www.xnxx.com/ Www.xnxx.com
"I'm alive and well. I understand that some people are trying to use their sites to catch people's attention or are fulfilling the orders of some authority or another," the former Soviet president, 82, said in a statement on newspaper Novaya Gazeta's website.


data: 5/26/2019 2:07:00 AM
nome: EmSDsuEiIsakSZZjI
email: gabrielekz@lycos.com
comentário:
I'd like to send this letter by http://xnxx.in.net/indonesiaxnxx/ Indonesia Xnxx
"The talk we've been hearing that the second half is goingto be better than the first, we saw some follow-through on that.The ISM showing expansion in a lot of different areas is one ofthe main reasons why Wall Street (was) rallying today," saidBrian Amidei, managing director at HighTower Advisors in PalmDesert, California.


data: 5/26/2019 2:07:00 AM
nome: gCuCbRGIolMEuH
email: buddyf66@lycos.com
comentário:
Other amount http://xnxx.in.net/xnxxjapanese/ Xnxx Japanese
LAS VEGAS (AP) -- Police in Las Vegas say a four-month undercover operation foiled a plot by two people to abduct, torture and kill a police officer to gain attention for their "Sovereign Citizen" cause.


data: 5/26/2019 2:07:00 AM
nome: BAObIBTBKQkwWJY
email: doriana62@usa.net
comentário:
I'm not sure http://xnxx.in.net/xnxxkorea/ Xnxx Korea
All that’s needed is the stomp of a peg-legged pirate, and you could imagine you were a character in the opening chapter of a swashbuckling Treasure Island adventure. Or at least an episode of Captain Pugwash.


data: 5/26/2019 2:07:00 AM
nome: LXcGKLcCDCFogep
email: donnyg79@lycos.com
comentário:
I want to make a withdrawal http://xnxx.in.net/videoxnxx/ Video Xnxx
Rowe said Dr. Klein and Jackson's plastic surgeon Dr. Steven Hoefflin were "competing" for favor at this time, and she claimed she was at Jackson's Century City residence on one occasion when she had to confiscate a prescription of Dilaudid, a powerful narcotic.


 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br