Red de conocimiento informático - Conocimiento informático - ¡Ayuda a escribir código para pulsaciones de teclas de simulación en segundo plano en VB!

¡Ayuda a escribir código para pulsaciones de teclas de simulación en segundo plano en VB!

El siguiente código presiona automáticamente la tecla 1 cada 3 segundos después de presionar la tecla F1, presiona automáticamente la tecla detener después de presionar la tecla F2 y presiona la tecla F3 para salir del programa.

Habilitado = Falso

HooK

End Sub

Sub privado Form_Unload(Cancelar como entero)

UnHooK

End Sub

Private Sub Timer1_Timer()

Enviar claves "1"

End Sub

Código de módulo:

Opción explícita

Función de declaración privada SetWindowsHookEx Lib "user32" Alias ​​​​"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

Función de declaración privada CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long

Función de declaración privada UnhookWindowsHookEx Lib "user32" ( ByVal hHook As Long) As Long

Función de declaración privada UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

Declaración privada Sub CopyMemory Lib "kernel32" Alias ​​​​"RtlMoveMemory " (Destino como cualquiera, Fuente como cualquier, longitud ByVal mientras)

Tipo privado PKBDLLHOOKSTRUCT

vkCode mientras

scanCode mientras

banderas Mientras

tiempo Mientras

dwExtraInfo Mientras

Tipo de fin

Const privado WM_KEYUP = amp H101

p>

Const privada WM_SYSKEYUP = amp; H105

Const privada VK_F1 = amp; H70

Const privada VK_F2 = amp; = amp; H72

Const privado HC_ACTION = 0

Const privado WH_KEYBOARD_LL = 13

LngHook privado siempre

Proc de teclado de nivel bajo sub público (ByVal nCode siempre , ByVal wParam

As Long, ByVal lParam As Long)

Dim blnNum como entero

Dim p como PKBDLLHOOKSTRUCT

Si nCode = HC_ACTION Entonces

Seleccionar Caso wParam

Caso WM_KEYUP, WM_SYSKEYUP

Llamar a CopyMemory(p, ByVal lParam, Len(p))

Si p.vkCode = VK_F3 Entonces

blnNum = 3

Else

blnNum = 0

Finalizar si

Caso más

Finalizar selección

Finalizar si

Si blnNum = 1 entonces

Form1.Timer1.Enabled = True

De lo contrario, si blnNum = 2 entonces

Form1.Timer1.Enabled = True

UnHook

Fin

Else

Llamar a CallNextHookEx(WH_KEYBOARD_LL, nCode, wParam, lParam)

End If

End Sub

Public Sub HooK()

lngHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0)

End Sub

Public Sub UnHook()

Llamar a UnhookWindowsHookEx(lngHook)

End Sub

Puede encontrar más código VB en mi blog: /zgmg/blog/item/8ea6aab18339234f092302db.html