![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Пишу прогу, которая посылает клики в игру.
Для кликов использую mouse_event, сначала LEFTDOWN, сразу после него LEFTUP. Данные действия поместил в таймер. Код: Код:
procedure TForm1.Timer2Timer(Sender: TObject); begin mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); end; Проблема в том, что если между кликами поставить большой интервал, то все нормально, работает так как я хочу, клики идут в одну точку. Как только ставлю маленький интервал, "включается" разброс, клики (выстрелы) попадают в определенную область, но не в точку. Как это исправить? Мониторил координаты курсора, они не изменяются даже при большом разбросе с маленьким интервалом. Как я понял, игра считывает интервал между кликами, и если он мал, считает это как зажим клавиши, отсюда и разброс. Это мои догадки. Как сделать, чтоб все клики происходили в одной точке? |
#2
|
|||
|
|||
![]() Сразу после begin напиши SetCursorPos(x,y). x - это точка по иксу, а y- это точка по игрику.
|
#3
|
|||
|
|||
![]() Я ж упомянул, что координаты не изменяются.
Этот вариант пробовал, не помгает. |
#4
|
|||
|
|||
![]() тебе нужно компенсировать разброс выстрелов небольшими смещениями курсора мыши. если выстрелы пошли выше то сместить курсор ниже. перемещать курсор той же фкнкцией.
|