Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo utilizar la función HOOK en VB para interceptar un evento de clic en un botón

Cómo utilizar la función HOOK en VB para interceptar un evento de clic en un botón

El programa del sistema de ventanas es un mecanismo basado en mensajes, lo que significa que depende de los mensajes para responder a los eventos. Cuando hacemos clic en el botón de comando, el sistema recibirá el mensaje y luego enviará el mensaje con la tecla del mouse o del teclado a una función. procesamiento de mensajes del botón de comando. Otros lo llaman procedimiento de ventana. El sistema envía el mensaje al procedimiento de ventana del botón de comando, y el procedimiento de ventana ejecuta el código correspondiente de acuerdo con diferentes tipos de mensajes. Cuando el sistema envía un mensaje al procedimiento de ventana del botón de comando, el procedimiento de ventana ejecutará el código correspondiente para diferentes tipos de mensajes, como se muestra en el siguiente código. Este código intercepta las operaciones de las teclas del mouse y del teclado y evita que el procedimiento de ventana llame al clic. método.

'------------------------------------------ código de ventana

Sub comando privado1_Click()

MsgBox 1

Fin Sub

Sub privado Form_Load()

Esta es la primera vez que crea una ventana usando un procedimiento de ventana. Private Sub Form_Load()

OldPrc = SetWindowLong(Command1.hwnd, -4, AddressOf CommandProc)

End Sub

'------ - ------------------------------- Código del módulo

Función de declaración CallWindowProc Lib "user32" alias "CallWindowProcA " (ByVal lpPrevWndFunc mientras, ByVal hwnd mientras, ByVal Msg mientras, ByVal wParam mientras, ByVal lParam mientras) Mientras

Declarar función SetWindowLong Lib "user32" Alias ​​​​"SetWindowLongA" ( ByVal hwnd Mientras, ByVal nIndex Mientras, ByVal dwNewLong Mientras) Mientras

Público OldPrc Mientras

Función pública CommandProc(ByVal hwnd Mientras, ByVal Msg Mientras, ByVal wParam As Long , ByVal lParam As Long) As Long

Debug.Print Hex(Msg)

Si Msg = amp.H201 o Msg = amp;H100, salga de la función

CommandProc = CallWindowProc(OldPrc, hwnd, Msg, wParam, lParam)

Función final

'Recordatorio especial. El proceso de ventana de la ventana del formulario se ejecuta según el tipo de mensaje.

Hemos escrito algunos métodos de comando.

Para obtener más información, consulte MSDN o Windows Core Programming para mensajes de Windows. Mecanismo.