Um Site sem Nome  

Provided By CGISpy.com
 

Informática
Visual Basic
VB & DirectX
Ficção Científica
Star Wars
Literatura
Diversos
Fanfiction
Star Wars
Star Trek
Arquivo X
Matérias
Academia
Planetary System
Galeria
Fan Art
Desenhos
Imagens
Biblioteca
Ponto de Vista
Tecnologia
Diversos
Interatividade
Fórum
Livro de Visitas
Mailing List
Links
Sobre
Contato
Divulgação
Créditos
Mapa do Site
Downloads

 

 

Visual Basic

 

Leitura do estado do teclado

 

Obs: o símbolo indica que o código foi "quebrado" em mais linhas para que possa ser exibido na tela, sendo que deve constar em apenas uma linha no programa.

A API do Windows possui várias funções que permitem o controle e verificação do teclado. Uma delas nos permite verificar qual o estado se uma determinada tecla, ou seja, se ela foi pressionada ou não.
Neste pequeno projeto vamos ver como utilizar esta função para verificar o estado (on/off) de quatros teclas: CapsLock, ScrollLock, Insert e NumLock.
A função que iremos utilizar é a GetKeyState. Ela precisa apenas de um parâmetro, que é o código da tecla a ser verificada. Retorna um valor, que pode ser 0, indicando que a tecla está ligada, ou -1.
O projeto é constituído de apenas um formulário, que contém quatro controles Label, para exibir as informações, e um controle Timer, cuja propriedade Interval foi definida para 150. Dessa forma, o estado do teclado é constantemente verificado pelo programa.

Declaração das constantes e da função a ser usada

Você deve declarar as constantes, bem como a função, na parte de declarações globais do form, como segue abaixo:

Private Const VK_CAPITAL = &H14 'Caps Lock
Private Const VK_NUMLOCK = &H90 'Num Lock
Private Const VK_SCROLL = &H91 'Scroll Lock
Private Const VK_INSERT = &H2D 'Insert
Private Declare Function GetKeyState Lib "user32" 
(ByVal nVirtKey As Long) As Integer

No evento Load do Form colocamos o código que efetivamente faz a varredura do teclado:

Private Sub Form_Load()
Dim keyLock As Long
lbcCapsLock.FontBold = True
lbcNumLock.FontBold = True
lbcScrollLock.FontBold = True
lbcInsert.FontBold = True
'Verifica estado da Caps Lock
keyLock = GetKeyState(VK_CAPITAL)
If keyLock Then
   lbcCapsLock.Caption = "Caps Lock On"
   lbcCapsLock.ForeColor = RGB(0, 0, 255)
Else
   lbcCapsLock.Caption = "Caps Lock Off"
   lbcCapsLock.ForeColor = RGB(255, 0, 0)
End If
'Verifica estado da Num Lock
keyLock = GetKeyState(VK_NUMLOCK)
If keyLock Then
   lbcNumLock.Caption = "Num Lock On"
   lbcNumLock.ForeColor = RGB(0, 0, 255)
Else
   lbcNumLock.Caption = "Num Lock Off"
   lbcNumLock.ForeColor = RGB(255, 0, 0)
End If
'Verifica estado da Scroll Lock
keyLock = GetKeyState(VK_SCROLL)
If keyLock Then
   lbcScrollLock.Caption = "Scroll Lock On"
   lbcScrollLock.ForeColor = RGB(0, 0, 255)
Else
   lbcScrollLock.Caption = "Scroll Lock Off"
   lbcScrollLock.ForeColor = RGB(255, 0, 0)
End If
'Verifica estado da tecla Insert
keyLock = GetKeyState(VK_INSERT)
If keyLock Then
   lbcInsert.Caption = "Insert On"
   lbcInsert.ForeColor = RGB(0, 0, 255)
Else
   lbcInsert.Caption = "Insert Off"
   lbcInsert.ForeColor = RGB(255, 0, 0)
End If
End Sub

Para que o programa verifique constantemente o teclado, foi colocado, no evento Timer do controle Timer, uma chamada ao evento Form_Load. Assim, as informações são constantemente atualizadas.

Está disponível para download o código-fonte do projeto, criado em VB5:
vb_project5.zip - 3 kb

 

 

 

 
   
26.08.2000
 
 
2000 - Rashi, an alien in Earth
Todas as marcas citadas são de propriedade de seus respectivos fabricantes.
 
1