Red de conocimientos turísticos - Conocimientos sobre calendario chino - ¿Cuál es el comando VB que hace que el botón izquierdo del mouse haga clic?

¿Cuál es el comando VB que hace que el botón izquierdo del mouse haga clic?

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

HWND FindWindow(.

LPCTSTR lpClassName, // Puntero al nombre de la clase

LPCTSTR lpWindowName // Puntero al nombre de la ventana

) Puntero a nombre de clase

LPCTSTR lpWindowName // Puntero al nombre de la ventana

);

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

DWORD GetWindowThreadProcessId(

HWND hWnd, // Identificador de ventana

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

);

3. Después de obtener el ID del proceso del juego, el siguiente paso es abrir el proceso con los permisos más altos. El método específico para usar la función OpenProcess es. de la siguiente manera:

HANDLE OpenProcess (

p>

DWORD dwDesiredAccess, // Indicador de acceso

BOOL bInheritHandle, // Manejar el indicador de herencia

DWORD dwProcessId // Identificador de proceso

);

En dwDesiredAccess, aquí es donde se configura el modo de acceso. Aquí solo necesitamos usar PROCESS_ALL_ACCESS para abrir. 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. Bien, 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);

CloseHandle(h);

cerrar;

fin.