Hotkeys

Iniciado por W0lFy, 11 Enero 2012, 03:32 AM

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

W0lFy

Cual es la mejor manera de desarrollarlo? He visto algun ejemplo con un timer que realiza la llamada a getAsynkeyState(key). Pero esto es ineficiente
No se me ocurre la manera con hooks de recoger una combinación de teclas pulsadas. Alguien me echa un cable? Gracias!
K@NuT0

Psyke1

#1
http://foro.elhacker.net/aporte_uchotkey-t315630.0.html
http://foro.elhacker.net/programacion_visual_basic/vb6_creacion_de_un_keylogger_avanzado_hook-t264469.0.html
http://leandroascierto.com/blog/keylogger/

DoEvents! :P

W0lFy

Cita de: Psyke1 en 11 Enero 2012, 20:02 PM
http://foro.elhacker.net/aporte_uchotkey-t315630.0.html
http://foro.elhacker.net/programacion_visual_basic/vb6_creacion_de_un_keylogger_avanzado_hook-t264469.0.html
http://leandroascierto.com/blog/keylogger/

Thank you  ;)

Citar
DoEvents! :P

Me.frefresh!!!

K@NuT0

W0lFy

Revivo, encontre la siguiente manera, pero con el tiempo la memoria RAM se dispara :S!!! Existe otra manera mas eficiente? Un saludo

Código (vb) [Seleccionar]

Public Const MOD_CONTROL As Long = &H2
Public Const MOD_SHIFT As Long = &H4
Public Const MOD_ALT = &H1

Código (vb) [Seleccionar]
Public Function NewWindowProc( _
                ByVal hwnd As Long, _
                ByVal Msg As Long, _
                ByVal wParam As Long, _
                ByVal lParam As Long) As Long
 
    If Msg = &H82 Then
         
       Call SetWindowLong(hwnd, GWL_WNDPROC, WinProc)
       Call UnregisterHotKey(hwnd, 1)
     
    End If
 
     
    If Msg = &H312 Then
          MSgbox "Combinación presionada"
    End If
    NewWindowProc = CallWindowProc(WinProc, hwnd, Msg, wParam, lParam)
 
End Function


Código (vb) [Seleccionar]

Call RegisterHotKey(hwnd, 1, teclaWparamEnCadena("[SHIFT] + [CONTROL] + [D]"), teclaLparamEnCadena("[SHIFT] + [CONTROL] + [D]"))


Código (vb) [Seleccionar]


Public Function teclaWparamEnCadena(cadena As String) As Long
Dim vDatos As Variant
Dim result As Long
Dim i As Integer
vDatos = Split(cadena, "+")
result = 0
For i = 0 To UBound(vDatos)

    Select Case Trim(vDatos(i))
        Case "[SHIFT]":
            result = result + MOD_SHIFT
           
        Case "[ALT]"
            result = result + MOD_ALT
        Case "[CONTROL]"
            result = result + MOD_CONTROL
    End Select
Next
teclaWparamEnCadena = result
End Function
K@NuT0