Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: W0lFy en 11 Enero 2012, 03:32 AM

Título: Hotkeys
Publicado por: W0lFy en 11 Enero 2012, 03:32 AM
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!
Título: Re: Hotkeys
Publicado por: 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/

DoEvents! :P
Título: Re: Hotkeys
Publicado por: W0lFy en 13 Enero 2012, 09:31 AM
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!!!

Título: Re: Hotkeys
Publicado por: W0lFy en 3 Febrero 2012, 10:06 AM
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