Здравствуйте, гость ( Вход | Регистрация )

4 страниц V « < 2 3 4  
Ответить в эту темуОткрыть новую тему
> Вопрос по рабочим столам в Win10
Glosha
сообщение 19.8.2019, 19:09
Сообщение #61


**

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(это низ рабочего окна)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 19.8.2019, 19:45
Сообщение #62


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



и кстати в скрипте от FREEON, тоже самое если привязать окно, то кликает в самый низ окна....но вот цвета не находит. попробовал не привязывать окно в скрипте Fors1k, кликает в нужное место, только 1 раз, остальные клики все в место первого клика
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 19.8.2019, 19:55
Сообщение #63


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



используй findimage и не грузи народ...сложность нашол там где ее нет
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 19.8.2019, 20:02
Сообщение #64


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



Цитата(FREEON @ 19.8.2019, 19:55) *

используй findimage и не грузи народ...сложность нашол там где ее нет

от Fors1k, скрипт работает четко(если не привязывать окно), только вот кликает в одно и тоже место....
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 19.8.2019, 20:18
Сообщение #65


*****

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


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 19.8.2019, 20:44
Сообщение #66


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Цитата(Fors1k @ 19.8.2019, 20:18) *

На видео

сбрось свой файл uopilot.ini подсветку синтекса заценю
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 19.8.2019, 20:44
Сообщение #67


**

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              // сделать его рабочим

глючит, я хз почему.... это не моя вина. привязал, как следует, но с этим окном, вот такое происходит. без привязки, работает идеально !!!!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 19.8.2019, 21:13
Сообщение #68


*****

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=


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 20.8.2019, 10:27
Сообщение #69


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



delete
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 21.8.2019, 12:12
Сообщение #70


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



не могу понять, если значение тут 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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 21.8.2019, 15:10
Сообщение #71


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



всем, спс! разобрался....
init_arr %a (1) // в скобках используется для координат.
init_arr %a 1 //без скобок символы.
ps. подскажите, а как в последний массив кода, который выше, добавить таймер?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 22.8.2019, 3:33
Сообщение #72


*****

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 разобрался неправильно, перечитай описание команды на вики.
Что такое таймер в массив?


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 22.8.2019, 10:56
Сообщение #73


**

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 кнопок не дали отказ, пилот вышел из массива и пошел дальше.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 23.8.2019, 12:43
Сообщение #74


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



поправите пожалуйста если неправильно, но вроде работает (таймер)
код
Код
set delimiter ' '
set workwindow 394820
set #timeout timer + 30000  // устанавливает значение timer
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 or 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
if timer >= #timeout    // если вышло время
break
end_if
end_while
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 23.8.2019, 13:34
Сообщение #75


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(Glosha @ 23.8.2019, 12:43) *

поправите пожалуйста если неправильно, но вроде работает (таймер)
код
Код
set delimiter ' '
set workwindow 394820
set #timeout timer + 30000  // устанавливает значение timer
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 or 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
if timer >= #timeout    // если вышло время
break
end_if
end_while
end_script


код
Код
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


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 23.8.2019, 13:43
Сообщение #76


**

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 не катит?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 23.8.2019, 13:47
Сообщение #77


*****

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) *

Нюансы такого плана ты можешь узнать на вики.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 1.9.2019, 13:37
Сообщение #78


**

Neophyte
Сообщений: 47
Регистрация: 4.8.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.375



разобрался
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

4 страниц V « < 2 3 4
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 13:44
Designed by Nickostyle