Я разобрался с автоматическим измельчителем для игры, в данный момент я работаю с PostMessage () из User32.dll
, и он вообще не работает.
Этот код:
static void Start_Attack(IntPtr handle, bool which)
{
if (which) PostMessage(handle, WM_LBUTTONDOWN, 0, MAKELPARAM(Coord_X, Coord_Y));
if (!which) PostMessage(handle, WM_RBUTTONDOWN, 0, MAKELPARAM(Coord_X, Coord_Y));
}
static void Stop_Attack(IntPtr handle, bool which)
{
if (which) PostMessage(handle, WM_LBUTTONUP, 0, MAKELPARAM(Coord_X, Coord_Y));
if (!which) PostMessage(handle, WM_RBUTTONUP, 0, MAKELPARAM(Coord_X, Coord_Y));
}
static void Use_Skill(IntPtr handle, char Skill)
{
PostMessage(handle, WM_KEYUP, (int)ConvertCharToVirtualKey(Skill), 0);
}
Не работает.Но этот код:
static void move_camera(IntPtr handle, int amounty)
{
PostMessage(handle, WM_MOUSEMOVE, 0, MAKELPARAM(amounty, 320));
}
работает.Итак, я могу отправить WM_MOUSEMOVE
в приложение, но не WM_LBUTTONDOWN
, например.Я знаю, что есть некоторые приложения, в которых PostMessage () не имеет никакого эффекта, но в этом случае WM_MOUSEMOVE
тоже не должен работать, верно?
Кто-то знает, где проблема?
EDIT1:
Хорошо, я получил больше информации.PostMessage()
, кажется, работает нормально, потому что на экране входа в систему я могу ввести свое имя пользователя и автоматически нажать кнопку входа в систему.Но в игре это не работает.Некоторые идеи?Я попробовал немного WM_KEYDOWN
, а затем WM_KEYUP
, или только WM_KEYUP
- пока ничего не работает.
EDIT2:
Я думаю, что приложение принимает прямой ввод с клавиатуры,Является ли это возможным?Любые способы понять эту эмуляцию, без внедрения DLL и перехвата функций?