По сути делаю автонаведение для игры. Но есть проблема. Вызов dll функции, как мне кажется, происходит на заднем фоне, т.е. ahk скрипт не дожидается его окончания и идёт работать дальше. Из-за чего происходит следующее: вместо нашёлся пиксель - навелись на него, получается нашёлся пиксель, вызвали наведение, но ещё не навелись, но уже нашли снова пиксель, снова вызвали наведение, но ещё не навелись, нашли пиксель, может уже отработало первое наведение и т.д. Это приводит не к простому наведению, а к скачкам.
Таким образом появился вопрос: как мне дождаться окончания выполнения вызова dll функции? (вызов отдельной программы через RunWait прошу не предлагать, опробовано, есть свои минусы) Такой проблемы нет на мощных компах, но вот конкретно сейчас у меня старенький ноут, поэтому хочу решить её.
Code: Select all
while GetKeyState("LShift", "P") {
PixelSearch, Px, Py, xStart, yStart, xStop, yStop, 0x4949FA, 10, Fast
if not ErrorLevel {
dX := Px-middleX
dY := Py-middleY+60
DllCall("mouse_event", uint, 1, int, dX, int, dY, uint, 0, int, 0)
}
}
Если выполнить код внутри цикла без цикла, т.е. когда dll функция выполнится один раз, наведение работает нормально, но вот нужно сделать это в цикле, пока нажата определённая клавиша.