Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: karmany en 13 Febrero 2006, 00:36 am



Título: Saber si están las Mayúsculas activadas
Publicado por: karmany en 13 Febrero 2006, 00:36 am
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.


Título: Re: Saber si están las Mayúsculas activadas
Publicado por: Zorrohack en 13 Febrero 2006, 04:26 am
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



Título: Re: Saber si están las Mayúsculas activadas
Publicado por: karmany en 13 Febrero 2006, 16:32 pm
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


Título: vacio
Publicado por: karmany en 13 Febrero 2006, 16:49 pm
repetido