Wewe, i feel good, shararararara, al code plizz :
Código:
'***************** FORMULARIO *************************
Private Sub Form_Load()
'eso mismo
IniHook
End Sub
Private Sub Form_Unload(Cancel As Integer)
'byebye
FinHook
End Sub
'***************** MODULO *****************************
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" (ByVal lParam As Long, ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Const WH_KEYBOARD = 2
Public ResulHook As Long
Public Function Teclas(ByVal code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim nombre As String
nombre = Space$(100)
'quiero el nombre de la tecla
GetKeyNameText lParam, nombre, 100
MsgBox nombre
'siguiente por favor XDD
Teclas = CallNextHookEx(ResulHook, WH_KEYBOARD, wParam, lParam)
End Function
Public Sub IniHook()
'habla por si sola, los parametros son:
'WH_KEYBOARD porque queremos agarrar solo los eventos de teclado
'direccion de la funcion a ser llamada
'manejador de la instancia, le paso cero y que!!
'Identificador de hilo actual
ResulHook = SetWindowsHookEx(WH_KEYBOARD, Direc(AddressOf Teclas), 0, GetCurrentThreadId)
End Sub
Public Function Direc(ByVal unadir As Long) As Long
Direc = unadir
End Function
Public Sub FinHook()
'juira hook
UnhookWindowsHookEx ResulHook
End Sub
Agarra todas las teclas de la aplicacion incluyendo la de Uindous . 1saludo
Marcadores