¿Cuál es el método para usar el código VB para hacer clic automáticamente con el botón izquierdo del mouse?
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.