CAPS LOCK

USUARIO.EXCLUIDOS 01/04/2005 14:34:24
#76187
COMO FAÇO PARA QUE NO MEU FORM LOAD A TECLA CAPS LOCK FIQUE ATIVADA...? SE TIVER DE USAR API ALGUEM PODE PASSAR O CODIGO...
USUARIO.EXCLUIDOS 01/04/2005 14:39:12
#76190
Resposta escolhida
Se precisa que o USUàRIO digite ALGO em CAIXA ALTA... Ativar somente o CAPS não vai RESOLVER seu PROBLEMA.....

Mesmo assim ai vai

Crie um módulo e digite o seguinte código:

Public Const VK_CAPITAL = &H14
Public Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Public kbArray As KeyboardBytes
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Long
Public Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Public Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long

Sub main()
Form1.Show
End Sub


Não esqueça de redirecionar a propriedade Startup Object para a Sub Main().
Crie um formulário e nele os seguintes objectos:

Botões: cmdToggle, cmdTurnOn e cmdTurnOff;
Label: Label1;
TextBox: Text1.


Insira o seguinte código.
[/c]
Private Function CapsLock() As Integer
CapsLock = GetKeyState(VK_CAPITAL) And 1 = 1
End Function

[txt-color=#0000ff]Private Sub Form_Load()
If CapsLock() = 1 Then Label1 = "On" Else Label1 = "Off"
End Sub [/txt-color]

Private Sub cmdToggle_Click()
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) = IIf(kbArray.kbByte(VK_CAPITAL) = 1, 0, 1)

SetKeyboardState kbArray
Label1 = IIf(CapsLock() = 1, "On", "Off")
End Sub

Private Sub cmdTurnOn_Click()
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) = 1
SetKeyboardState kbArray
Label1 = IIf(CapsLock() = 1, "On", "Off")
End Sub

Private Sub cmdTurnOff_Click()
GetKeyboardState kbArray
kbArray.kbByte(VK_CAPITAL) = 0
SetKeyboardState kbArray
Label1 = IIf(CapsLock() = 1, "On", "Off")
End Sub
[/c]

A função GetKeyState foi utilizada para capturar o status de apenas uma tecla, enquanto que a função Getkeyboardstate foi utilizada para pegar o status de todo o teclado.
O botão 'cmdToggle' inverte a indicação do Caps Lock.

Após digitar o código utilize a caixa de texto para testar o funcionamento...

Até +++
Tópico encerrado , respostas não são mais permitidas