Здравствуйте.
Извините, что так часто обращаюсь, но снова требуется помощь бывалых в написании функции.
Версия AutoIt:
3.3.8.1
Описание:
Имеются 16-ть ячеек с центрами в заданных координатах.
Требуется обойти все 16-ть ячеек и при не совпадении с заданным цветом выполнить двойной щелчок; также при достижении последней ячейки проверить контрольную область на изменение цвета и выполнить одинарный щелчок, если цвет отличается от заданного, после чего снова обойти все 16-ть ячеек до того момента, когда совпадёт заданный цвет пустой ячейки или цвет контрольной области.
Цвет пустой ячейки по заданным координатам: 0x1F1F1F.
Цвет НЕ ПУСТОЙ ячейки: любой, отличный от предыдущего.
Цвет не активной контрольной области по заданным координатам: 0x1D1D1D.
Цвет АКТИВНОЙ контрольной области: 0x97C0E3
Если это важно, то ячейки расположены в четыре ряда, по четыре ячейки в каждом ряду; счёт начинается и продолжается слева - направо.
Как это мне видится:
1) Перемещаем курсор по координатам n-ой ячейки;
1.1) Если цвет по координатам отличается от цвета пустой ячейки, то выполняем двойной щелчок;
1.1.1) Переходим пункту 1.
1.2) Если цвет по координатам совпадает с цветом пустой ячейки, то завершаем работу функции.
1.3) Если таким макаром дошли до последней - 16-ой ячейки - переводим курсор в контрольную область;
1.3.1) Если цвет по координатам отличается от цвета неактивной контрольной области, то выполняем одинарный щелчок;
1.3.1.1) Переходим к пункту 1.
1.3.2) Если цвет по координатам совпадает с цветом неактивной контрольной области, то завершаем работу функции.
Примечание:
Функцию обхода ячеек планирую вызывать из уже работающей функции.
Как я понял, при вызове текущая функция "застывает" пока не отработает вызванная.
Func FunctionName1()
...
Call ("FunctionName2")
....
EndFunc
Координаты ячеек.
Пока что крутится такое убожество и производятся клики в пустоту.
Остальное пока что худо-бедно работает.
Спасибо, если кто поможет.
Извините, что так часто обращаюсь, но снова требуется помощь бывалых в написании функции.
Версия AutoIt:
3.3.8.1
Описание:
Имеются 16-ть ячеек с центрами в заданных координатах.
Требуется обойти все 16-ть ячеек и при не совпадении с заданным цветом выполнить двойной щелчок; также при достижении последней ячейки проверить контрольную область на изменение цвета и выполнить одинарный щелчок, если цвет отличается от заданного, после чего снова обойти все 16-ть ячеек до того момента, когда совпадёт заданный цвет пустой ячейки или цвет контрольной области.
Цвет пустой ячейки по заданным координатам: 0x1F1F1F.
Цвет НЕ ПУСТОЙ ячейки: любой, отличный от предыдущего.
Цвет не активной контрольной области по заданным координатам: 0x1D1D1D.
Цвет АКТИВНОЙ контрольной области: 0x97C0E3
Если это важно, то ячейки расположены в четыре ряда, по четыре ячейки в каждом ряду; счёт начинается и продолжается слева - направо.
Как это мне видится:
1) Перемещаем курсор по координатам n-ой ячейки;
1.1) Если цвет по координатам отличается от цвета пустой ячейки, то выполняем двойной щелчок;
1.1.1) Переходим пункту 1.
1.2) Если цвет по координатам совпадает с цветом пустой ячейки, то завершаем работу функции.
1.3) Если таким макаром дошли до последней - 16-ой ячейки - переводим курсор в контрольную область;
1.3.1) Если цвет по координатам отличается от цвета неактивной контрольной области, то выполняем одинарный щелчок;
1.3.1.1) Переходим к пункту 1.
1.3.2) Если цвет по координатам совпадает с цветом неактивной контрольной области, то завершаем работу функции.
Примечание:
Функцию обхода ячеек планирую вызывать из уже работающей функции.
Как я понял, при вызове текущая функция "застывает" пока не отработает вызванная.
Func FunctionName1()
...
Call ("FunctionName2")
....
EndFunc
Координаты ячеек.
Пока что крутится такое убожество и производятся клики в пустоту.
Остальное пока что худо-бедно работает.
Код:
MouseClick ( "Left" , 580, 280, 2) ; двойной клик в первую ячейку
Sleep(500)
MouseClick ( "Left" , 680, 280, 2) ; двойной клик во вторую ячейку
Sleep(500)
MouseClick ( "Left" , 780, 280, 2) ; двойной клик в третью ячейку
Sleep(500)
MouseClick ( "Left" , 880, 280, 2) ; двойной клик в четвёртую ячейку
Sleep(500)
MouseClick ( "Left" , 580, 380, 2) ; двойной клик в пятую ячейку
Sleep(500)
MouseClick ( "Left" , 680, 380, 2) ; двойной клик в шестую ячейку
Sleep(500)
MouseClick ( "Left" , 780, 380, 2) ; двойной клик в седьмую ячейку
Sleep(500)
MouseClick ( "Left" , 880, 380, 2) ; двойной клик в восьмую ячейку
Sleep(500)
MouseClick ( "Left" , 580, 480, 2) ; двойной клик в девятую ячейку
Sleep(500)
MouseClick ( "Left" , 680, 480, 2) ; двойной клик в десятую ячейку
Sleep(500)
MouseClick ( "Left" , 780, 480, 2) ; двойной клик в одиннадцатую ячейку
Sleep(500)
MouseClick ( "Left" , 880, 480, 2) ; двойной клик в двенадцатую ячейку
Sleep(500)
MouseClick ( "Left" , 580, 580, 2) ; двойной клик в тринадцатую ячейку
Sleep(500)
MouseClick ( "Left" , 680, 580, 2) ; двойной клик в четырнадцатую ячейку
Sleep(500)
MouseClick ( "Left" , 780, 580, 2) ; двойной клик в пятнадцатую ячейку
Sleep(500)
MouseClick ( "Left" , 880, 580, 2) ; двойной клик в шестнадцатую ячейку
...
MouseClick ( "Left" , 920, 645, 1) ; клик в контрольную область
Спасибо, если кто поможет.