Saber si están las Mayúsculas activadas

Iniciado por karmany, 13 Febrero 2006, 00:36 AM

0 Miembros y 1 Visitante están viendo este tema.

karmany

Conocéis cómo puedo saber si tengo las mayúsculas activadas o no, y si están desactivadas activarlas..
Gracias, he buscado por todos sitios y no encuentro nada...


PD para salir del apuro estoy utilizando Ucase.

Zorrohack

Para hacer necesitas esta API

Public Declare Function GetKeyState Lib `user32` (ByVal nVirtKey _
As Long) As Integer


Luego en un boton escribes;

Tmp = GetKeyState(vbKeyCapital)
If Tmp = 1 Then
MsgBox "Caps Lock está encendido"
Else
MsgBox "Caps Lock está apagado"
End If



Y para apagarlo o encenderlo tienes que usar esta API y estas Constantes;

Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Const VK_CAPITAL = &H14
Private Const VK_NUMLOCK = &H90
Private Const VK_SCROLL = &H91


Luego te creas una Sub o Funcion aparte y le escribes esto;

Public Sub EncenderApagar()
        keybd_event VK_CAPITAL, 0, 1, 0
        keybd_event VK_CAPITAL, 0, 2, 0
End Sub

Progresamos porque hay Millones de imbeciles, maldicion jodi a McAfee,Panda,Kav,Norton, perdonen solo practicaba.

karmany

Muchas gracias Zorrohack, ha funcionado perfectamente.

Yo solamente conocía la API GetKeyState, pero tampoco sabía que si devolvía 1 con vbKeyCapital está Caps Lock encendido. Yo siempre la había utilizado como <0 para saber la tecla pulsada.
Y la verdad, no había oído nombrar keybd_event.

De nuevo, gracias.. :D

karmany

#3
repetido