Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo utilizar PostMessage en vb?

¿Cómo utilizar PostMessage en vb?

Esta función coloca (envía) un mensaje en la cola de mensajes asociada con el hilo creado por la ventana especificada y regresa sin esperar a que el hilo procese el mensaje. Los mensajes en la cola de mensajes se obtienen llamando a GetMessage y PeekMessage.

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.