|
|
|
Вопрос по рабочим столам в Win10 |
|
|
Glosha |
14.8.2019, 17:29
|
Neophyte
Сообщений: 47
Регистрация: 4.8.2019 Группа: Пользователи Наличность: 0
Пользователь №: 19.375
|
помогите пожалуйста с циклом... Код set #d findcolor (1164, 740 1164, 742 1 1 (3798088-4387912) %arr 2 -1 3 abs) if #d > 0 wait 2000 else log Цвет не найден! end_if
мне нужно зациклить вот эту часть кода Код set #d findcolor (1164, 740 1164, 742 1 1 (3798088-4387912) %arr 2 -1 3 abs) if #d > 0 wait 2000
и продолжить, когда не найдет цвет
|
|
|
|
Glosha |
15.8.2019, 18:23
|
Neophyte
Сообщений: 47
Регистрация: 4.8.2019 Группа: Пользователи Наличность: 0
Пользователь №: 19.375
|
Цитата(Fors1k @ 15.8.2019, 18:15) • set workwindow 6573546 • set workwindow windowfromcursor • set workwindow findwindow (Блокнот) https://uopilot.tati.pro/index.php?title=Findcolor "Работа с перекрытым окном: Да. Привязка к окну обязательна." но у меня не срабатывает, может, что-то не то делаю? если поверх, что-то есть "цвет не найден". Код set #handle findwindow ("Manager") // найти окно set workwindow #handle // сделать его рабочим set windowpos 3383, 515 wait 2000 kleft 3815, 560 abs wait 8m set #d findcolor (3815, 560 3815, 562 1 1 (3798088-4387912) %arr 2 -1 3 abs) while #d > 0 set #d findcolor (3815, 560 3815, 562 1 1 (3798088-4387912) %arr 2 -1 3 abs) wait 10000 if #d = 0 log Цвет не найден! end_if end_while end_script
|
|
|
|
Fors1k |
16.8.2019, 13:58
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 2398
Пользователь №: 18.746
|
Цитата(Glosha @ 16.8.2019, 9:48) спасибо! подскажи, а у тебя работает функция "вернуть курсор назад после клика"? а можно еще указать на каком рабочем столе искать цвет?
Про "вернуть курсор назад после клика" не подскажу, так как никогда не пользовался им, не знаю как и после чего он должен вернуть курсор. Кто-нибудь из ребят, думаю, подскажет. Если срочно, то: get mouse_pos #x0 #y0 // позиция до клика kleft 100 200 // клик move #x0 #y0 // возврат Цвет, если я не ошибаюсь, пилот сможет искать только на том столе, который сейчас активен.
--------------------
Для связи
|
|
|
|
Glosha |
16.8.2019, 14:13
|
Neophyte
Сообщений: 47
Регистрация: 4.8.2019 Группа: Пользователи Наличность: 0
Пользователь №: 19.375
|
Цитата(Fors1k @ 16.8.2019, 13:58) Про "вернуть курсор назад после клика" не подскажу, так как никогда не пользовался им, не знаю как и после чего он должен вернуть курсор. Кто-нибудь из ребят, думаю, подскажет. Если срочно, то: get mouse_pos #x0 #y0 // позиция до клика kleft 100 200 // клик move #x0 #y0 // возврат
Цвет, если я не ошибаюсь, пилот сможет искать только на том столе, который сейчас активен.
в пилоте есть функция возврата в настройках, но она не работает. хз, может только у меня
|
|
|
|
Fors1k |
17.8.2019, 21:13
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 2398
Пользователь №: 18.746
|
Код set delimiter ' ' init_arr %a (1) "1, 2 3, 4" "5, 6 7, 8" "9, 10 11, 12" "13, 14 15, 16" "17, 18 19, 20" "21, 22 23, 24" while size(%a[1]) > 0 for #i 1 size(%a[1]) set $a %a[1 #i] set #a findcolor ($a 1 1 (3798088-4387912) %arr 2 -1 3 workwindow) if #a = 0 kleft x y delete_array %a #i break end_if end_for end_while end_script В массиве задай координаты всех точек
--------------------
Для связи
|
|
|
|
FREEON |
17.8.2019, 21:28
|
Journeyman
Сообщений: 365
Регистрация: 14.2.2017 Группа: Пользователи Наличность: 1317
Пользователь №: 18.346
Возраст: 25
|
ну либо более простой вариант(азы так сказать) Код while_not 450, 160 255 and 480, 160 255 // повторяем цикл пока во всех точкаx 1 и 2 не получим желаемый цвет //точка 1 цвет известен но он нам не подходит, нужно сделать клик if 450, 160 16777215 //если есть цвет координаты в точке 1 и цвет X, Y Color left 450, 160 //куда нужно кликнуть в точке 1 wait 100 end_if wait 100 //точка 2, цвет в данный момент не известен, но знаем кокой он должен получится в итоге. Делаем до тех пор пока не будет нужный цвет if_not 480, 160 255 //пока не появился нужный цвет в точке 2 wait 100 left 480, 160 //куда нужно кликнуть в точке 2 что бы получить нужный цвет end_if // и т.д. end_while end_script
либо изменить условие повторять цикл пока хотя бы в одной(во всех присутствует не нужный цвет). while 450, 160 255 or 480, 160 255
|
|
|
|
Glosha |
18.8.2019, 9:36
|
Neophyte
Сообщений: 47
Регистрация: 4.8.2019 Группа: Пользователи Наличность: 0
Пользователь №: 19.375
|
во втором примере понятно, где проставлять клик под каждый findcolor , а в первом примере не догоняю, где привязывать каждый поиск цвета под свой клик. у меня еще почему-то перестал работать if, просто проскакивает действие внутри ... Код wait 2000 get mouse_pos #x0 #y0 // позиция до клика kleft 3815, 560 abs // клик move #x0 #y0 // возврат wait 8m set #d findcolor (3815, 560 3815, 562 1 1 (3798088-4387912) %arr 2 -1 3 abs) while #d > 0 set #d findcolor (3815, 560 3815, 562 1 1 (3798088-4387912) %arr 2 -1 3 abs) wait 10000 if #d = 0 //тут действие end_if end_while
|
|
|
|
FREEON |
18.8.2019, 14:49
|
Journeyman
Сообщений: 365
Регистрация: 14.2.2017 Группа: Пользователи Наличность: 1317
Пользователь №: 18.346
Возраст: 25
|
Цитата(Glosha @ 18.8.2019, 9:36) во втором примере понятно, где проставлять клик под каждый findcolor , а в первом примере не догоняю, где привязывать каждый поиск цвета под свой клик.
Код set delimiter ' ' init_arr %color 12642802 12642802 12642802 // цвет в точке 1, цвет в точке 2 ... init_arr %x 550 560 580 // координата X в т1, координата X в т2 init_arr %y 180 180 180 // координата Y в т1, координата Y в т2 set #proverka 0 // cчетчик проверки цвтов во всех точках while 1 = 1 // зациклили выполнение кода, до тех пор покам нужно for #i 1 size(%color) // перебираем массив(наши точки а данном случае по размеру цвета) log %x[#i], %y[#i] %color[#i] // показать лог Точки в формате X Y Color if %x[#i], %y[#i] %color[#i] // Если есть цвет в точке..выполнить действие move %x[#i] %y[#i] // навести мышку на точку(выполнить действие) set #proverka 0 // а также делаем сброс счетчика т.к желаемый результат не достигнут else // если нет цвета в точке set #proverka #proverka + 1 // цвет отсутствует прибавили к счетчику +1 log #proverka // отоброзили в лог состояния счетчика end_if // конец условия if #proverka >= 3 // если в 3 точках отсутствует цвет, то... break // выйти из цикла for end_if end_for if #proverka >= 3 // если в 3 точках отсутствует цвет, то... break // выйти из цикла while end_if end_while end_script
Цитата у меня еще почему-то перестал работать if, просто проскакивает действие внутри ...
проверьте координаты области поиска x = 3815 ширина монитора??? set #d findcolor (3815, 560 3815, 562
|
|
|
|
Glosha |
18.8.2019, 15:00
|
Neophyte
Сообщений: 47
Регистрация: 4.8.2019 Группа: Пользователи Наличность: 0
Пользователь №: 19.375
|
Цитата(FREEON @ 18.8.2019, 14:49)
проверьте координаты области поиска x = 3815 ширина монитора??? set #d findcolor (3815, 560 3815, 562
спасибо огромное! да, это два монитора)) у меня там даже просто log "текст" не срабатывает ... все работало, а тут че-то перестало реагировать.
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|