Тема: AHK: Функции "SendPlay" и "Click".
Здравствуйте. Пишу простенький скрипт, который производит несколько нажатий мышью в меню игры. Выглядит он примерно так:
#HotkeyInterval 0
#InstallKeybdHook
#InstallMouseHook
SetBatchLines, -1
SetKeyDelay , 20, -1, Play //поставил задержку, т.к. игра не
SetMouseDelay , 20, Play //успевает реагировать без неё
*vk44::
MouseGetPos, xpos, ypos
SendPlay, {vk43}{vk46}{Click 140, 600}{Click 670, 730}{Click 470, 460}{Click 730, 730}{Click 420, 460}{Click 790, 730}{vk43}{Click 370, 570}{Click 850, 730}
MouseMove, %xpos%, %ypos%
SendPlay, {vk1b}
Return
Проблема заключается в том, что примерно раз в 10 запусков наблюдается следующая картина: выполняется несколько кликов, после чего скрипт "зависает", т.е. не все клики успевают выполнится. Для того, чтобы он продолжил их выполнять, необходимо нажать какую-либо клавишу или пошевелить мышью. Я плохо разбираюсь в сообщениях, но предполагаю, что сообщения, создаваемые скриптом, имеют "низкий приоритет", что ли, и windows начинает обрабатывать что-нибудь другое, "забывая" про оставшиеся необработанные клики. Или windows ждёт, пока в очереди накопятся задачи, чтобы сразу их выполнить. Тогда нужно что-то вроде Application.ProcessMessages();
Прошу вашей помощи в исправлении этого ляпсуса!

