¿Cómo utilizar PostMessage en vb?
Prototipo de función: B00L PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, lparam lparam);
Parámetros
El identificador de la ventana donde se ejecuta el programa de ventana recibe el mensaje. Puede tomar dos valores con significados específicos:
HWND. Difusión: los mensajes se envían a todas las ventanas de nivel superior del sistema, incluidas ventanas no propias no válidas o invisibles, ventanas superpuestas y ventanas emergentes. Los mensajes no se envían a ventanas secundarias.
NULL: El funcionamiento de esta función es el mismo que llamar a la función PostThreadMessage, estableciendo el parámetro dwThread en el identificador del hilo actual.
Mensaje: Especifica el mensaje a enviar.
WParam: Especifica información adicional específica del mensaje.
IParam: Especifica información adicional específica del mensaje.
Valor de retorno: si la llamada a la función es exitosa, el valor de retorno es distinto de cero; si la llamada a la función falla, el valor de retorno es cero. Para obtener más información sobre el error, llame a la función GetLastError.
Ejemplo: El juego se cuelga. Si un juego simple se bloquea con solo hacer clic con el mouse, entonces podemos usar VB para crear un complemento simple y usar funciones como SetCursorPos() para mover el mouse a la posición especificada y hacer clic, pero en este caso la interfaz del juego debe estar en primer plano. Pero si usas la función postmessage(), incluso si el juego está minimizado, los eventos de clic del mouse aún se pueden enviar al juego. Esa es la belleza del correo electrónico.
Pruebe el siguiente ejemplo:
Declaración de API
Función de declaración privada PostMessage Lib "usuario 32" alias "PostMessageA" (ByVal hwnd es Long, ByVal wMsg es Long, ByVal wParam es Long, ByVal lParam es Long) es Long
declara de forma privada la función FindWindow Lib "user32 "alias" FindWindowA" (ByVal lpClassName es una cadena, ByVal lpWindowName es una cadena) es Long
privada Declarar biblioteca sub-sueño "kernel 32" (ByVal dw milisegundos de largo)
Declaración de constante
Constante privada WM _ LBUTTONDBLCLK = ampH203
Constante privada WM _ LBUTTONDOWN = ampH201
Constante privada WM _ LBUTTONUP = ampH202
Constante privada WM _ MBUTTONDBLCLK = ampH209
Const privada WM _ MBUTTONDOWN = ampH207
Const privada WM _ MBUTTONUP = ampH208
Const privada WM _ RBUTTONDBLCLK = ampH206
Const privada WM _ RBUTTONDOWN = ampH204
Const privada WM _ RBUTTONUP = ampH205
Subcomando privado 1_Click()
Dim lpClassName es String, lpWindowName es String, hWndX es Long
LpClassName = "Completa el nombre de la clase del juego ventana aquí "Puedes usar la herramienta SPY que viene con VB Enterprise Edition para ver el nombre de la clase y el título de la ventana del juego.
LpWindowName = "Completa aquí el título de la ventana del juego"
Hwndx = FindWindow (nombre de clase LP, nombre de ventana LP)' Este paso es para obtener el identificador del juego. ventana al enviar un mensaje Necesita usar.
Dim wMsg es Largo, wParam es Largo, lParam es Largo, Rx es Largo, xx es Entero, yy es Entero
Xx=100 'Haga clic en la coordenada X.
Yy=100 'Haga clic en la coordenada Y.
WMsg = WM_LBUTTONDOWN 'Clic izquierdo en el mensaje.
wParam = 1
lParam =yy*65536 xx
Llamar a postmessage (hwndx, wmsg, wparam, lparam)' para enviar el mensaje.
Duerme 300
WMsg = WM_LBUTTONUP 'El clic izquierdo activa el mensaje.
wParam = 1
lParam = yy*65536 xx
Llamar a postmessage (hwndx, wmsg, wparam, lparam)' para enviar el mensaje.
Conector final
El propósito de este programa es realizar el clic del mouse en el juego ~ ~ ~ ~ ~ como la posición de 100 438 000.