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: 11/4/2018 2:54:00 PM
nome: rxeiXLgoJsQJdEKlzh
email: marceloj86@usa.net
comentário:
About a year http://blog.cilek.com/etiket/trendler/ vand tadalis Obama said he would encourage states to reshape their financial aid funding models through a $1 billion Race to the Top for Higher Education that would push states to maintain funding for public higher education.

data: 11/4/2018 2:54:00 PM
nome: locWwJJFYJziuNk
email: russellttx@gmail.com
comentário:
I work for a publishers http://blog.cilek.com/etiket/kiz/ tadora 20 india Shortly before her 20th birthday, she was spotted by Louis Leplée, a nightclub owner who effectively created her as a cabaret singer, dressed her in simple black, and steered her towards a réaliste repertoire of songs about pain and heartbreak.

data: 11/4/2018 2:53:00 PM
nome: tMGPwArJBvUr
email: maxwell8k@gmail.com
comentário:
I do some voluntary work http://blog.cilek.com/etiket/ofke/ erfahrung mit tadacip Ariana was quick to defend herself, saying Justin was the one who wanted the picture up, and she later tweeted: “Everyone, girls are allowed to be friends with guys. I’m a lady. Chill out.”

data: 11/4/2018 2:53:00 PM
nome: JfKYwMZAlGhflReeM
email: dewitt5b@yahoo.com
comentário:
Could I have , please? http://blog.cilek.com/etiket/2018/ super p force pharmacy2home "If you are a U.S. citizen, there will be no problem getting into U.S. courts. The other people are going to have a fight on their hands," said Northern California attorney Frank Pitre, who represents two Americans who were aboard the plane.

data: 11/4/2018 2:53:00 PM
nome: NWDTbLzSDcf
email: murray9y@aol.com
comentário:
I'm a member of a gym http://blog.cilek.com/etiket/trendler/ was ist tadalista Really? Folks that did those statistics should re-do them with better criteria. As someone once said: "If you believe solely in statistics, then going to strip clubs will make you look middle aged and and bald."

 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