Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuál es el método para usar el código VB para hacer clic automáticamente con el botón izquierdo del mouse?

¿Cuál es el método para usar el código VB para hacer clic automáticamente con el botón izquierdo del mouse?

1. Primero, necesitamos usar FindWindow para conocer el identificador de la ventana del juego, porque necesitamos usarlo para saber dónde está el ID después de que se ejecuta el juego. A continuación se explica cómo usar FindWindow:

HWND FindWindow(

LPCTSTR lpClassName, // El puntero apunta al nombre de la clase

LPCTSTR lpWindowName // El puntero apunta al nombre de la ventana

) El puntero apunta al nombre de la clase

LPCTSTR lpWindowName // El puntero apunta al nombre de la ventana

2. Usamos GetWindowThreadProcessId para obtener el ID del proceso. el proceso correspondiente a la ventana del juego El uso de la función es el siguiente:

DWORD GetWindowThreadProcessId(

HWND hWnd, // Identificador de ventana

LPDWORD lpdwProcessId //. Dirección variable utilizada para el identificador de proceso

);

3 Después de obtener el ID del proceso del juego, el siguiente paso es abrir el proceso con los permisos más altos. La función OpenProcess es la siguiente:

HANDLE OpenProcess (

DWORD dwDesiredAccess, // bandera de acceso

BOOL bInheritHandle, // maneja la bandera de herencia

DWORD dwProcessId // identificador de proceso

);

En dwDesiredAccess este lugar es donde se configura el modo de acceso, puede configurar muchos permisos. Aquí solo necesitamos usar PROCESS_ALL_ACCESS para. Abra el proceso. Para otros métodos, podemos consultar MSDN.

4. Después de abrir el proceso, podemos usar la función de operación de almacenamiento. Aquí solo necesitamos usar WriteProcessMemory para escribir datos en la dirección de memoria (otras operaciones como: ReadProcessMemory, etc., no las haré). cúbralo aquí) (Presentado uno por uno), echemos un vistazo al uso de WriteProcessMemory:

BOOL WriteProcessMemory(

HANDLE hProcess, // El identificador del proceso en el que se escribe la memoria

LPVOID lpBaseAddress, // La dirección para comenzar a escribir en la memoria

LPVOID lpBuffer, // El puntero del búfer donde escribir los datos

DWORD nSize, // Los bytes que se escribirán Número

LPDWORD lpNumberOfBytesWritten // El número real de bytes escritos

);

5. mango de proceso.

Esto es parte del método para implementar este tipo de programa de complemento de juego. Bueno, con este método, tenemos una comprensión racional. Echemos un vistazo a ejemplos reales para mejorar nuestra sensibilidad. El siguiente es el código del complemento del juego XX. Aprendamos el método anterior:

const

ResourceOffset: dword = $004219F4

recurso: dword = 3113226621;

ResourceOffset1: dword = $004219F8;

recurso1: dword = 1940000000

ResourceOffset2: dword = $0043FA50; p> recurso2: dword = 1280185;

ResourceOffset3: dword = $0043FA54;

recurso3: dword = 3163064576

ResourceOffset4: dword = $0043FA58 ; /p>

recurso4: dword = 2298478592;

var

hw:HWND;

pid:

h:

hw := FindWindow('XX', nil);

si hw = 0 entonces

Salir

GetWindowThreadProcessId(hw, @pid; );

h := OpenProcess(PROCESS_ALL_ACCESS, false, pid

Si h = 0 entonces

Salir; flatcheckbox1.Checked=true entonces

comenzar

WriteProcessMemory(h, Pointer(ResourceOffset), @Resource, sizeof(Resource), tt

WriteProcessMemory(h, Pointer(); ResourceOffset1), @Resource1, sizeof(Resource1), tt);

end;

if flatcheckbox2. Entonces

Iniciar

WriteProcessMemory. (h, Puntero(ResourceOffset2), @Resource2, tamaño de (Recurso2), tt

WriteProcessMemory(h, Puntero(ResourceOffset2), @Recurso2, tamaño de (Recurso2), tt);

p>

Fin;

Si flatcheckbox2.Pointer(ResourceOffset3), @Resource3, sizeof(Resource3), tt

WriteProcessMemory(h, Pointer(ResourceOffset4); ), @ Recurso4, tamaño de( Recurso4),

fin

MensajeBeep(0);

> CerrarHandle(h);

cerrar;

fin.