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: 12/10/2018 9:06:00 PM
nome: AUQqWDmfTASk
email: rikky@aol.com
comentário:
I'm sorry, she's https://matrixglobal.net.id viagra The goal of the ACRES-PharmaTrain alliance is to promote the adoption of “new and reliable” global standards for high-quality postgraduate education in drug discovery, development, regulation and marketing.  

data: 12/10/2018 9:06:00 PM
nome: xVswMDGuxlvca
email: shelbyf50@gmail.com
comentário:
Could you transfer $1000 from my current account to my deposit account? http://ttstaller.com viagra In 1760, at the Battle of Warburg, he led a cavalry charge which routed the French, losing his hat and wig in the process. In recognition of this, soldiers of the Blues and Royals (his former regiment) have the unique privilege in the British Army of being permitted to salute while not wearing headgear.

data: 12/10/2018 9:06:00 PM
nome: rhOBfuLLOsLtU
email: rodgerkfi@yahoo.com
comentário:
I'm on business http://ttstaller.com levitra Silver's technical breakout, breaking above key resistanceof the 50-day moving average for the first time since February,boosted hopes that smaller investors will keep buying silverETFs for the rest of the year.

data: 12/10/2018 9:06:00 PM
nome: lnGZjDNKdfakeFxZ
email: shaynejsw@lycos.com
comentário:
Remove card http://ttstaller.com clomid Those investments have come under scrutiny as America Movilhas accumulated deep paper losses. However, a deal announced byTelefonica this week to buy the German unit of Dutchtelecoms group KPN - in which Slim has an almost 30percent stake - could help pare the losses.

data: 12/8/2018 2:34:00 PM
nome: OCiaNycKbKBYghUduN
email: alfonsokrl@yahoo.com
comentário:
What sort of music do you listen to? https://weteachquran.com viagra European partners are watching the political manoeuvring inBerlin closely, concerned that delay could push back EU-widedecisions on financial crisis-fighting measures such as anambitious plan for a banking union. German agreement isessential to create a pan-European mechanism to recapitalise orwind down troubled banks, with a joint financial backstop.

 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