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/21/2019 5:47:00 PM
nome: ioTjPZevWSaQNb
email: theodores11@aol.com
comentário:
Photography http://myvidster.fun myvidster.com The deep recession revealed a culture of corruption and cronyism in the Slovenian state, which has so far refused to sell its major banks and a number of other firms, leaving the government in control of about 50 percent of the economy.

data: 5/21/2019 5:46:00 PM
nome: cxWvtDSoqDN
email: hipolito0l@yahoo.com
comentário:
I'm from England http://cedecspro.edu.co/ lolita models MornhinwegâÂ?Â?s handling of Smith has been nearly perfect despite the rookieâÂ?Â?s imperfect first month of his career. The coach has never tried to shield his quarterback when it would have been easy to do so. MornhinwegâÂ?Â?s aggressive mind-set has trickled down to his pupil.

data: 5/21/2019 5:46:00 PM
nome: UurBldMArIvPlLXz
email: warner3f@yahoo.com
comentário:
A few months http://imagefap.in.net imagefap bbw Content engaging our readers now, with additional prominence accorded if the story is rapidly gaining attention. Our WSJ algorithm comprises 30% page views, 20% Facebook, 20% Twitter, 20% email shares and 10% comments.

data: 5/21/2019 5:46:00 PM
nome: MhjUuayaGpu
email: marlonn11@aol.com
comentário:
I was born in Australia but grew up in England http://highlightconseil.com/ lolitas topless top sites Shares of Shunfeng Photovoltaic surged more than 13 percenton Thursday morning, adding to a more than 20 percent gain onWednesday after the company said it had submitted abid. (Reporting by Charlie Zhu; Editing by Edwina Gibbs)

data: 5/21/2019 5:46:00 PM
nome: YtYPtwwWRTN
email: loganndi@usa.net
comentário:
One moment, please http://ghettotube.in.net ghettoporn
Britain's Financial Conduct Authority (FCA) said in June itwas examining allegations banks had manipulated foreign exchangebenchmarks by trading ahead of their own customers' orders, apractice known in the markets as "front running".


 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