|
|
|
Вопрос по рабочим столам в Win10 |
|
|
Glosha |
19.8.2019, 19:09
|
Neophyte
Сообщений: 47
Регистрация: 4.8.2019 Группа: Пользователи Наличность: 0
Пользователь №: 19.375
|
Цитата(Fors1k @ 19.8.2019, 18:22) Запускай вот этот, и присылай отчет из лога.
вообще нечего не находит, но твой скрипт от "Сегодня, 16:22" работает, но криво.. смотри че он делает: пока все 3 кнопки активны он находит цвета и циклирует и ожидает отказа цвета, отрубаю 1, скрипт видит отказ цвета и кликает, на отказ в цифре 2 вообще не реагирует, отказ в цифре 3, все норм кликает... но все время кликает не по указанным координатам 433 560 433 590 433 620 , всегда в одну и туже точку 433 1070 и пиши в клики че хочешь, все равно кликнет в 433 1070(это низ рабочего окна)
|
|
|
|
Fors1k |
19.8.2019, 20:18
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 2420
Пользователь №: 18.746
|
Видео с работой скрипта На видео я отключаю зеленый цвет на ячейке с цифрой 3, скрипт кликает в ячейку с цифрой 3 красного цвета, отключаю зеленый 1, клик в красный 1, отключил 2, клик в красный 2, на этом конец работы. Все клики разные и в нужные места. Как ты и просил. Скрипт, как видишь рабочий. Не знаю что еще добавить)) Где-то ошибку допускаешь ты. Я сказал как найти ошибку (используя логи), ты не хочешь. Скрипт из видео
Код set workwindow 1184446//findwindow ("Manager") // указываем окно поиска set delimiter ' ' init_arr %a (1 4) 46 91 124 107 47 149 127 165 45 209 129 222 // координаты для поиска init_arr %b (1 2) 562 41 566 71 565 102 // координаты для клика while size(%a) > 0 for #i 1 size(%a) set #a %a[#i 1] set #b %a[#i 2] set #c %a[#i 3] set #d %a[#i 4] set #fc findcolor (#a #b #c #d 1 1 (4697456) %arr 2 -1 3 workwindow) if #fc = 0 kleft %b[#i] delete_array %a -#i delete_array %b -#i break end_if end_for end_while end_script
--------------------
Для связи
|
|
|
|
Glosha |
19.8.2019, 20:44
|
Neophyte
Сообщений: 47
Регистрация: 4.8.2019 Группа: Пользователи Наличность: 0
Пользователь №: 19.375
|
Цитата(Fors1k @ 19.8.2019, 20:18) Видео с работой скрипта На видео я отключаю зеленый цвет на ячейке с цифрой 3, скрипт кликает в ячейку с цифрой 3 красного цвета, отключаю зеленый 1, клик в красный 1, отключил 2, клик в красный 2, на этом конец работы. Все клики разные и в нужные места. Как ты и просил. Скрипт, как видишь рабочий. Не знаю что еще добавить)) Где-то ошибку допускаешь ты. Я сказал как найти ошибку (используя логи), ты не хочешь. Скрипт из видео
Код set workwindow 1184446//findwindow ("Manager") // указываем окно поиска set delimiter ' ' init_arr %a (1 4) 46 91 124 107 47 149 127 165 45 209 129 222 // координаты для поиска init_arr %b (1 2) 562 41 566 71 565 102 // координаты для клика while size(%a) > 0 for #i 1 size(%a) set #a %a[#i 1] set #b %a[#i 2] set #c %a[#i 3] set #d %a[#i 4] set #fc findcolor (#a #b #c #d 1 1 (4697456) %arr 2 -1 3 workwindow) if #fc = 0 kleft %b[#i] delete_array %a -#i delete_array %b -#i break end_if end_for end_while end_script все работает четко, извиняюсь за вынос мозга.... проблема была в привязке окна, почему-то через Код set #handle findwindow ("Manager") // найти окно set workwindow #handle // сделать его рабочим
глючит, я хз почему.... это не моя вина. привязал, как следует, но с этим окном, вот такое происходит. без привязки, работает идеально !!!!
|
|
|
|
Fors1k |
19.8.2019, 21:13
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 2420
Пользователь №: 18.746
|
Цитата(FREEON @ 19.8.2019, 20:44) сбрось свой файл uopilot.ini подсветку синтекса заценю
Highlighter
[Highlighter] Assembler=4473924,255,0 Character=4473924,43690,0 Comment=4473924,12303291,2 Float=4473924,11184810,0 Hexadecimal=4473924,11184742,0 Identifier=4473924,12303291,0 Number=4473924,11184810,0 Preprocessor=4473924,32768,2 Reserved Word=4473924,0,1 RW Array=4473924,14522777,1 RW CharParam=4473924,43690,0 RW ColorAndCord=4473924,43690,0 RW EndScript=4473924,7829469,1 RW For=4473924,43520,1 RW Function=4473924,14522777,1 RW Get=4473924,12303291,1 RW If=4473924,43520,0 RW Keyboard=4473924,12303291,1 RW LastObject=4473924,43690,0 RW Macros=4473924,12613568,1 RW Memory=4473924,14522777,1 RW Mouse=4473924,12303291,1 RW Msg=4473924,6710886,1 RW Other=4473924,14522777,1 RW Plugin=4473924,14522777,1 RW Proc=4473924,14522777,1 RW Script=4473924,7829469,1 RW Sub=4473924,12613568,1 RW Time=4473924,43690,0 RW Wait=4473924,12303291,1 RW Windows=4473924,14522777,1 Space=4473924,0,0 String=4473924,12303291,0 Symbol=4473924,8947848,0 RW Array List= RW CharParam List= RW ColorAndCord List= RW EndScript List= RW For List= RW Function List= RW Get List= RW If List= RW Keyboard List= RW LastObject List= RW Macros List= RW Memory List= RW Mouse List= RW Msg List= RW Other List= RW Plugin List= RW Proc List= RW Script List= RW Sub List= RW Time List= RW Wait List= RW Windows List=
--------------------
Для связи
|
|
|
|
Fors1k |
22.8.2019, 3:33
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 2420
Пользователь №: 18.746
|
Цитата(Glosha @ 21.8.2019, 12:12) не могу понять, если значение тут 1 цифра " init_arr %tw (1) 4 5 ", то работает корректно и правильно находит стол, но если больше 1 значение, начинается хаос с выбором стола. code
Код set delimiter ' ' set workwindow 394820 init_arr %a (1 4) 2354 560 2354 560 2354 590 2354 590 // записать координаты всех мест поиска цвета: StartX StartY EndX EndY. init_arr %b (1 2) 2354 740 2354 770// записать координаты всех мест клика: X Y. init_arr %tw (1) 4 5 while size(%a) > 0 for #i 1 size(%a) set #a %a[#i 1] set #b %a[#i 2] set #c %a[#i 3] set #d %a[#i 4] set #fc findcolor (#a #b #c #d 1 1 (3798088-4387912) %arr 2 -1 3 workwindow) if #fc = 0 kleft %b[#i] wait 33s kleft 1058, 216 abs wait 3s set #ld linedelay set linedelay 40 set #cw 1 // номер рабочего стола, в котором сейчас находится окно. set workwindow 394820 // окно, которое будем перемещать showwindow workwindow if #cw < %tw[#i] set #a 2 else set #a 1 end_if sendex_down {WindowsLeft}{Tab} sendex_up {WindowsLeft}{Tab} wait 350 sendex_down ~{F10} wait 200 sendex_up ~{F10} wait 200 sendex {Down} wait 200 sendex {Down} wait 200 sendex {Right} wait 200 repeat %tw[#i] - #a sendex {Down} end_repeat sendex {Enter} sendex {Escape} set linedelay #ld delete_array %tw -#i delete_array %a -#i delete_array %b -#i break end_if end_for end_while init_arr %tw (1 1) 4 5 нужно записать так. Цитата(Glosha @ 21.8.2019, 15:10) всем, спс! разобрался.... init_arr %a (1) // в скобках используется для координат. init_arr %a 1 //без скобок символы. ps. подскажите, а как в последний массив кода, который выше, добавить таймер?
Про единицу после %a разобрался неправильно, перечитай описание команды на вики. Что такое таймер в массив?
--------------------
Для связи
|
|
|
|
Glosha |
22.8.2019, 10:56
|
Neophyte
Сообщений: 47
Регистрация: 4.8.2019 Группа: Пользователи Наличность: 0
Пользователь №: 19.375
|
Цитата(Fors1k @ 22.8.2019, 3:33) init_arr %tw (1 1) 4 5 нужно записать так.
Про единицу после %a разобрался неправильно, перечитай описание команды на вики. Что такое таймер в массив?
странно у меня без (1 1) все четко работает.... ок, исправлю и проверю. ага нашел в вики (1 1) записать 1 значение с 1 элементом. по поводу таймера. мне еще нужно, как вариант, чтобы кроме проверки цвета в кнопке был таймер временной, чтобы я например задал нужное время и даже если все 6 кнопок не дали отказ, пилот вышел из массива и пошел дальше.
|
|
|
|
Glosha |
23.8.2019, 13:43
|
Neophyte
Сообщений: 47
Регистрация: 4.8.2019 Группа: Пользователи Наличность: 0
Пользователь №: 19.375
|
Цитата(Fors1k @ 23.8.2019, 13:34) код
Код set delimiter ' ' set workwindow 394820 set #timeout 30000 // установить значение #timeout set #cw 1 // номер рабочего стола, в котором сейчас находится окно. init_arr %a (1 4) 2354 560 2354 560 2354 590 2354 590 2354 620 2354 620 2354 650 2354 650 2354 680 2354 680 2354 710 2354 710 // записать координаты всех мест init_arr %b (1 2) 2354 560 2354 590 2354 620 2354 650 2354 680 2354 710// записать координаты всех мест клика: X Y. while size(%a) > 0 and timer < #timeout for #i 1 size(%a) set #a %a[#i 1] set #b %a[#i 2] set #c %a[#i 3] set #d %a[#i 4] set #fc findcolor (#a #b #c #d 1 1 (3798088-4387912) %arr 2 -1 3 workwindow) if #fc = 0 kleft %b[#i] delete_array %a -#i delete_array %b -#i break end_if end_for end_while end_script таймер, указывается только в миллисекундах? 2m или 2h не катит?
|
|
|
|
Fors1k |
23.8.2019, 13:47
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 2420
Пользователь №: 18.746
|
Цитата(Glosha @ 22.8.2019, 10:56) странно у меня без (1 1) все четко работает.... ок, исправлю и проверю. ага нашел в вики (1 1) записать 1 значение с 1 элементом.
(1 1) означает записывать элементы, начиная с 1ой строки, и по 1 элементу в каждую строку. init_arr %tw (1 1) 4 5 Результат: Строка 1: 4 Строка 2: 5 Дальше в коде ты обращаешься к массиву через %tw[#i]. %tw[1] будет равно 4 (взяли элемент из 1ой строки). %tw[2] будет равно 5 (взяли элемент из 2ой строки). Цитата(Glosha @ 23.8.2019, 13:43) таймер, указывается только в миллисекундах? 2m или 2h не катит?
Цитата(Fors1k @ 5.8.2019, 19:46) Нюансы такого плана ты можешь узнать на вики.
--------------------
Для связи
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|