Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
#pragma once
#include <iostream>
#include <windows.h>
#include <tlhelp32.h>
#include "mHook.hpp"
данный код устанавливает хук функции hookmouseproc, которая обрабатывает нажатие левой кнопки мыши. но одна проблема, @kin4stat написал что rage mp создаёт окно с разными названиями, то есть hwnd уже и не получишь, но в моём способе он и не нужен, нужен process id, который я получаю с помощью функции getprocessidbyname, то есть мне в эту функцию нужно передать параметр с именем процесса, и на возврате он выдаст мне его pid. pid я должен указать в функцию установки хука, в качестве последнего параметра, то есть:
там где стоит 0 в конце, нужно указать dwThreadId в качестве параметра, но проблема в том, что когда я указываю pid процесса, у меня срабатывает вот это условие:
C++:
if (hook_mouse == NULL) {
return 1;
}
и в итоге всё идёт по пизде, короче я не знаю как это исправить, поэтому пока что могу предложить просто юзать в качестве последнего параметра функции setwindowshookexa - 0, то есть хук будет работать сразу для всех приложений, а не определённо для твоего процесса, это конечно плохо, но это намного лучше твоих бесконечных циклов.
p.s. при запуске этого исходника, будет обрабатываться левая кнопка мыши, и выводится в консоль сообщение "click", чтобы эмулировать нажатие клавиши, тебе нужно вместо этого:
C++:
std::cout << "click" << std::endl;
написать код который будет эмулировать нажатие левой клавиши мыши, с помощью функции sendmessagea, но тут проблемка, нужен всё равно hwnd, чтобы тебе его получить, тебе надо в твоём случае, с помощью process id получать заголовок окна по его pid'у, и только потом создавать переменную hwnd, где будет лежать этот заголовок.
ну в общем разбирайся, я тебе начальный код написал, тебе осталось написать функцию по определению заголовка окна по его pid'у. и да, функцию которую придётся тебе использовать в получении pid'а, я уже тебе написал:
в dll_process_attach в твоём случае чтобы исполнить код который ты хочешь нужно ставить инициализацию функции где будет лежать код который тебе надо, и инициализироваться он должен обязательно через:
До инициализации игры у окна другое название, поэтому плагин и не может найти GTA:SA:MP. Дожидайся загрузки игры например хуком CTimer::Update и уже тогда делай поиск по названию окна.
в dll_process_attach в твоём случае чтобы исполнить код который ты хочешь нужно ставить инициализацию функции где будет лежать код который тебе надо, и инициализироваться он должен обязательно через:
До инициализации игры у окна другое название, поэтому плагин и не может найти GTA:SA:MP. Дожидайся загрузки игры например хуком CTimer::Update и уже тогда делай поиск по названию окна.
Что такое хендл педа/транспорта/объекта? Везде используются эти хендлы, но нигде не объясняется что это такое (я не нашел). Это какие-то идентификаторы, или индексы объекта в пуле, или что-то ещё?