И тебе спасибо за интересную задачу.
Теперь вроде понятно что нужно сделать.
Вот с утречка накалякал скрипт. Он как бы из двух частей. При запуске он в режиме записи сценария - ждет нажатия пробелов над нужными координатами и записывает эти координаты в массив. При этом скрипт проверяет нажатия клавиш 1 и 2.
Клавиша 1 - запускает эмуляцию, которая проигрывает запись, без кликов, а только перемещает курсор над записанными координатами.
Клавиша 2 - запускает выполнение сценария (с наведением курсора и кликами).
По окончании выполнения этих режимов будет предложено выбрать следующее действие. Работа с шаблонами пока не реализована, если надо можно сделать. И соответственно клавиши можно поменять на более удобные. Клавиша пробел прокручивает страницу браузера. Задержу между кликами, наверно лучше сделать рандомной, т.к. сайты могут отслеживать действия посетителей и при подозрении на бота можно получить бан. Реалистичное перемещение курсора тоже можно сделать, тут на форуме есть где-то хорошее решение, можно найти. Наверно я сильно всё усложняю).
$delay = 2000 // задержка между кликами в режимах "Выполнение сценария" и "Режим эмуляции" (ms)
//--------------------------------
LOGCLEAR
LOGWRITE ("Запись сценария")
start:
WHILE($mode = 0)
IF(ISKEYDOWN(#SPACE) = 1)
WHILE(ISKEYDOWN(#SPACE) = 1)
WAITMS(30)
END_CYC
ARRPUSH($arr, $_xmouse)
ARRPUSH($arr, $_ymouse)
END_IF
IF(ISKEYDOWN(#1) = 1) // Режим эмуляции
$mode = 1
END_IF
IF(ISKEYDOWN(#2) = 1) // Выполнение сценария
$mode = 2
END_IF
WAITMS(30)
END_CYC
//--------------------------------
WHILE( (ISKEYDOWN(#1) = 1) | (ISKEYDOWN(#2) = 1) )
WAITMS(30)
END_CYC
//--------------------------------
$arrsize = ARRSIZE($arr)
execution:
IF($arrsize ! 0)
SWITCH($mode)
CASE(1)
LOGWRITE ("Режим эмуляции")
FOR($n = 0, $n < $arrsize, 2)
MOVE($arr[$n],$arr[$n + 1])
WAITMS($delay)
END_CYC
$message = " Режим эмуляции завершён Выберите действие"
CASE(2)
LOGWRITE ("Выполнение сценария")
FOR($n = 0, $n < $arrsize, 2)
MOVE($arr[$n],$arr[$n + 1])
WAITMS(10)
LCLICK($arr[$n],$arr[$n + 1])
WAITMS($delay - 10)
END_CYC
$message = " Выполнение сценария завершено Выберите действие"
END_SWITCH
ELSE
$message = " Сценарий не загружен Выберите действие"
$mode = 3
END_IF
//--------------------------------
message:
LOGWRITE ("")
IF($mode = 3)
$res = RADIOBOX($message, "Записать новый сценарий", "Загрузить шаблон", "Выход (закрыть программу)")
IF($res = 1)
$mode = 0
GOTO(start)
END_IF
IF($res = 2)
$dialog = DIALOGBOX("Данный функционал в разработке.", 0, 3)
GOTO(message)
END_IF
IF($res = 3)
HALT(1)
END_IF
ELSE
$res = RADIOBOX($message, "Режим эмуляции", "Выполнить сценарий", "Записать новый сценарий", "Сохранить запись как шаблон", "Загрузить шаблон", "Выход из программы")
IF($res = 1)
$mode = 1
GOTO(execution)
END_IF
IF($res = 2)
$mode = 2
GOTO(execution)
END_IF
IF($res = 3)
$mode = 0
GOTO(start)
END_IF
IF($res = 4)
$dialog = DIALOGBOX("Данный функционал в разработке.", 0, 3)
GOTO(message)
END_IF
IF($res = 5)
$dialog = DIALOGBOX("Данный функционал в разработке.", 0, 3)
GOTO(message)
END_IF
IF($res = 6)
HALT(1)
END_IF
END_IF
HALT
"Пару раз" скрипт запустил, вроде работает, сильно не проверял.