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

4 страниц V < 1 2 3 4 >  
Ответить в эту темуОткрыть новую тему
> Вопрос по рабочим столам в Win10
DarkMaster
сообщение 10.8.2019, 9:32
Сообщение #21


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
Wait - это int? Получается он может вместить ~2.15 млрд мс, что равно ~600 часов. Значит даже wait 596h должно работать, разве нет?

Практику говорю. В промежутке 3-5 часов есть предел. Вариантов кроме переполнения я особо не вижу. Может у него внутренний счетчик циклов какой-нибудь сделан в виде short, как вариант. Может кстати фикс уже был, т.к. я об этом уже писал.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 14.8.2019, 17:29
Сообщение #22


**

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

и продолжить, когда не найдет цвет
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 14.8.2019, 22:50
Сообщение #23


*****

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



Цитата(Glosha @ 14.8.2019, 17:29) *

помогите пожалуйста с циклом...мне нужно зациклить часть кода и продолжить, когда не найдет цвет

Код

set #d findcolor (1164, 740 1164, 742 1 1 (3798088-4387912) %arr 2 -1 3 abs)
while #d > 0
    set #d findcolor (1164, 740 1164, 742 1 1 (3798088-4387912) %arr 2 -1 3 abs)
    wait 2000
    if  #d = 0
        log Цвет не найден!
    end_if
end_while
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 15.8.2019, 0:26
Сообщение #24


**

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



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


**

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



тут разобрался.
еще пару вопросов:

а команда "set #d findcolor" работает в перекрытом окне?
у меня одного не возвращает курсор после клика? (в настройках стоит галка, возвращать)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 15.8.2019, 18:15
Сообщение #26


*****

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



• set workwindow 6573546
• set workwindow windowfromcursor
• set workwindow findwindow (Блокнот)

Цитата(Glosha @ 15.8.2019, 13:47) *

а команда "set #d findcolor" работает в перекрытом окне?

https://uopilot.tati.pro/index.php?title=Findcolor


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


**

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


*****

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



Цитата(Glosha @ 15.8.2019, 18:23) *

"Работа с перекрытым окном: Да. Привязка к окну обязательна."
но у меня не срабатывает, может, что-то не то делаю? если поверх, что-то есть "цвет не найден".

Все верно, если указан параметр abs, то искать будет только в видимой области, то есть в перекрытом окне не найдет. Замени abs на workwindow.


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


**

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



Цитата(Fors1k @ 15.8.2019, 18:34) *

Все верно, если указан параметр abs, то искать будет только в видимой области, то есть в перекрытом окне не найдет. Замени abs на workwindow.

спасибо! подскажи, а у тебя работает функция "вернуть курсор назад после клика"? а можно еще указать на каком рабочем столе искать цвет?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 16.8.2019, 13:58
Сообщение #30


*****

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



Цитата(Glosha @ 16.8.2019, 9:48) *

спасибо! подскажи, а у тебя работает функция "вернуть курсор назад после клика"? а можно еще указать на каком рабочем столе искать цвет?

Про "вернуть курсор назад после клика" не подскажу, так как никогда не пользовался им, не знаю как и после чего он должен вернуть курсор. Кто-нибудь из ребят, думаю, подскажет.
Если срочно, то:
get mouse_pos #x0 #y0 // позиция до клика
kleft 100 200 // клик
move #x0 #y0 // возврат

Цвет, если я не ошибаюсь, пилот сможет искать только на том столе, который сейчас активен.


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


**

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 // возврат

Цвет, если я не ошибаюсь, пилот сможет искать только на том столе, который сейчас активен.

в пилоте есть функция возврата в настройках, но она не работает. хз, может только у меня
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 16.8.2019, 14:25
Сообщение #32


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
в пилоте есть функция возврата в настройках, но она не работает

Запустить пилот от админа.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 16.8.2019, 14:43
Сообщение #33


**

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



Цитата(cirus @ 16.8.2019, 14:25) *

Запустить пилот от админа.

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


**

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



помогите пожалуйста с циклом, для меня слишком сложное решение...
пример:
есть 6 точек координат(условий), по ним нужно проверить соответствие цвета, если на 1 из них не найден цвет сделать клик, но клин нужен только внутри каждого условия отдельный и так зациклить пока не будет все 6 не соответствий. клик нужно делать только 1 раз после первого отказа в цвете.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 17.8.2019, 21:13
Сообщение #35


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 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

В массиве задай координаты всех точек


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


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 17.8.2019, 21:40
Сообщение #37


**

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



спасибо большое!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 18.8.2019, 9:36
Сообщение #38


**

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


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Glosha
сообщение 18.8.2019, 15:00
Сообщение #40


**

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



Цитата(FREEON @ 18.8.2019, 14:49) *


проверьте координаты области поиска x = 3815 ширина монитора???
set #d findcolor (3815, 560 3815, 562

спасибо огромное!
да, это два монитора))
у меня там даже просто log "текст" не срабатывает ... все работало, а тут че-то перестало реагировать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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