CAPS LOCK ATIVADA

FABIOIGOR 28/07/2009 09:20:05
#318084
Bom dia Galera!!
estou com uma duvida que acho que deve ser simples para vocês...

tenho um form aqui, e queria que toda vez que o caps lock fosse ativado emitisse uma msg
tem alguma rotina ou funçao para isso??
valews pela ajuda galera
abraço
t+
MARCELO.TREZE 28/07/2009 10:21:01
#318092
Resposta escolhida
Option Explicit
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Private kbArray As KeyboardBytes
Private Declare Function GetKeyboardState Lib [Ô]User32[Ô] (kbArray As KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib [Ô]User32[Ô] (kbArray As KeyboardBytes) As Long


Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Call GetKeyboardState(kbArray)
If kbArray.kbByte(&H14) = 1 Then
MsgBox [Ô]CapsLock Ativada[Ô]
Else
MsgBox [Ô]CapsLock desativada[Ô]
End If
Call SetKeyboardState(kbArray)

End Sub
FABIOIGOR 28/07/2009 10:24:04
#318093
a certo
no caso marcelo isso eu vou colocar na generals
Citação:

Option Explicit
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Private kbArray As KeyboardBytes
Private Declare Function GetKeyboardState Lib [Ô]User32[Ô] (kbArray As KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib [Ô]User32[Ô] (kbArray As KeyboardBytes) As Long



valews brother abraço
t+
MARCELO.TREZE 28/07/2009 10:37:36
#318097
é isso mesmo deve estar no General do form

lembre-se apenas do seguinte coloquei o exmplo no key up do form, apenas para teste, poi se você pressionar qualquer tecla ira aparecer a mensagem, então por exemplo

Então coloque a mesa no gotfocus do text box em questão

Dou a seuinte sugestão, ao invés de ficar verificando se o caps Lock está ativado ou não eu já forçaria a pessoa a escrever maiusculo ou minusculo diretamente desta forma

Private Sub Form_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub


a função key preview do form tem de estar como true

se quiser tudo minusculo

Private Sub Form_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(LCase(Chr(KeyAscii)))
End Sub


e assim seria melhor
Tópico encerrado , respostas não são mais permitidas