Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot в онлайн играх _ Поиск цвета в перекрытом (свернутом окне)

Автор: фонарик 19.12.2012, 14:55

Подскажите пожалуйста, на сегодняшний день в версии пилота 2.32 есть возможность настроить поиск цвета пикселя в окне (приложении), которое перекрыто, например, блокнотом или просто всернуто на панель задач ?

Либо у меня что-то не получается, либо оно в принципе не работает.

// рабочее окно я указываю при помощи ctrl+a
set $a findcolor (0, 0 450, 250 1 1 7132903 %s 2 workwindow abs)
set #w size (%s)
msg size: #w found: $a
for #i 1 #w
set #x %s [#i 1]
set #y %s [#i 2]
end_for

Если окно развернуто на мониторе поверх всего или виден искомый пиксель из-за других окон которые на переднем плане - то пиксель находится. Если же окно игры перекрыть блокнотом, то все, капут sad.gif Если в скрипте перед workwindow поставить 1 (там стоит 2), то спасет только закрытие пилота и повторное открытие, ибо кнопка старт пуск вообще перестает реагировать (ощущение складывается, что пилот просто завис). Если там же удалить 2 - то пиксель не найдется ни в каком случае (я как понял, там можно ставить 1, 2, название окна или же рабочее окно которое указано). Если после workwindow поставить 1 (как я понял, это количество пикселей которые найдет пилот и прекратит дальнейший поиск), то он все равно при рабочем варианте ищет все 4 пикселя которые там есть.

Вместо ctrl+a я пробывал указывать окно командами:
set #win FindWindow (CORE)
set WorkWindow #win

и потом вместо workwindow подставлял переменную #win

Но все равно стоит перекрыть область где сидят искомые пиксели - не находится sad.gif Может я что-то не так делаю ? Или подскажите пожалуйста, как можно еще попробовать?

А еще постоянно вылазиет вот такая ошибка:
Изображение

жмакаешь ок какое-то время она больше не вылазиет, не смотря на ошибку все работает вродебы дальше также, как и работало.

Автор: Zeleax 19.12.2012, 15:01

workwindow указывается ВМЕСТО типа поиска

Кстати, зачем обычно использовать abs, если ищете в окне (в оконных координатах)?

Автор: DarkMaster 19.12.2012, 15:14

Цитата
А еще постоянно вылазиет вот такая ошибка:

Нужно чуть изменить размеры окна. Ждем фиксенной версии.

Автор: фонарик 20.12.2012, 12:19

Цитата(Zeleax @ 19.12.2012, 15:01) *
workwindow указывается ВМЕСТО типа поиска
Если вместо 1 или 2 (типа поиска) указать workwindow, то пиксели не находятся не то чтобы в перекрытом окне, а вообще как таковые на экране активного приложения, лежащего поверх всего. Поиск находит пиксель только при типе поиска 2 и только если данные пиксели видны воочию на мониторе. Почему так?

Цитата(Zeleax @ 19.12.2012, 15:01) *
Кстати, зачем обычно использовать abs, если ищете в окне (в оконных координатах)?
Дело в том, что если есть необходимость запустить скрипт в заранее неизвестном окне (т.е указываем в скрипте активное окно - workwindow), то если скрипт построен на не абсолютнызх координатах, то он воспримет относительные координаты как абсолютные.

Например, есть окно размером 800х600, в котором нужно жмакнуть на координаты 400, 300. Разрешение рабочего стола - 1366х768. Данное окно активно.
Код
set WorkWindow
left 400, 300
stop_script

и скрипт жамкнет где-то в левом верхнем уголке окна (т.е по абс. координатам 400, 300)
Поэтому приходится при задании координат указывать абсолютные. Это очень неудобно, т.к менять положение окна нельзя.
Сейчас с появлением функции задания активного окна из под курсора оно работает и на относительных координатах, но опять беда - мышка не всегда находится над окном, в котором нужно похозяйничать скрипту.

Автор: DarkMaster 20.12.2012, 14:46

Цитата
Поиск находит пиксель только при типе поиска 2 и только если данные пиксели видны воочию на мониторе. Почему так?

https://forum.uokit.com/index.php?s=&showtopic=24451&view=findpost&p=181843
Возможно как-то связано. Пока еще тонкости не изучены.

// После вашего появления с вопросом про преобразования double в int при чтении из памяти и страшной кипучей работы мозга, я каждый раз вздрагиваю, когда вижу ваш пост))

Автор: Dmitriy_Zuev 25.1.2013, 23:01

У меня такая же проблема, но не одно из выше предложных решений мне не помогло
Возможно у вас появилось свежее решение?

Автор: DarkMaster 25.1.2013, 23:34

Попробуйте уменьшить изображение и область поиска.
Обязательно исключите черный цвет из картинки (нулевой). Для этого закрасьте любым несущественным цветом левый верхний пиксель изображения, после чего закрасьте все нулевые пиксели в этот же цвет. Данные точки будут проигнорированы при поиске.

И самое главное. Хендл указывается ВМЕСТО типа поиска, не следом за ним.

Автор: Dmitriy_Zuev 28.1.2013, 19:50

спасибо совет полезный, но на сколько я знаю поиск цвета не ищет картинки... Или я ошибаюсь и не понял вашу мысль?

Автор: DarkMaster 28.1.2013, 19:57

эмм... я про финдимидж говорил. У нас тут эпидемия одного открывшегося бага. Думал опять он.

Вообще этот метод работает не всегда. Зависит от приложения. Окно сворачивать нельзя - только перекрывать. Ну могу предложить попробовать финдимидж, раз уж коснулись его.

Автор: BSW_rama 28.1.2013, 22:37

ставишь виртуал писи, в ней ставишь вин, запукаешь приложение, пилота, и будет тебе всегда активное окно на первом плане и прочей автономной фихнёй... сворачиваешь машину и занимаешься своими делами, я так несколько браузерных игр играю, точнее они сами играются smile.gif... в некоторых уже заблочили за использование бота smile.gif

Автор: DarkMaster 28.1.2013, 23:20

Как показала практика, то шанс бана ничтожно мал даже при бездумном использовании. Если еще чуток думать мозгами, то вероятность стремится к нулю.

Автор: Rob098 24.3.2013, 22:58

долго использовал версию 1.07 для одной онлайн ява игры, можно было перекрывать другими окнами, играть в игры, делать вообще все, что угодно, но вот в новых версиях это вообще не работает, стоит перекрыть любым окном и все... sad.gif

Автор: DarkMaster 25.3.2013, 9:55

А что именно отваливается? Клики? Клавиши? Проверки цвета? Первые два и сейчас шуршат нормально, проверки цвета никогда и не было в перекрытых...

Автор: MaXiS 17.12.2019, 15:24

Добрый день! Прошу помощи )
Есть 5 окон эмуляторов андроида. Там нашел дочернее окно но не могу получить цвет пикселя в этих окнах (

Пробовал get color, findcolor,

Автор: DarkMaster 18.12.2019, 17:04

Там с какими-то эмуляторами были проблемы. Могу ошибиться, но вроде Nox не очень хотел работать с перекрытыми, а вот Memu полет был нормальный. Зачастую нужно искать не дочернее, а родительское окно. Так же при нажатии ctrl+a теперь в лог скидывается цепочка окон для поиска по хендлу (перекрытые) и был ли успешен поиск окна с которого собственно возможно произвести захват в перерытом состоянии.

Автор: MaXiS 25.12.2019, 18:08

Цитата(DarkMaster @ 18.12.2019, 17:04) *

Там с какими-то эмуляторами были проблемы. Могу ошибиться, но вроде Nox не очень хотел работать с перекрытыми, а вот Memu полет был нормальный. Зачастую нужно искать не дочернее, а родительское окно. Так же при нажатии ctrl+a теперь в лог скидывается цепочка окон для поиска по хендлу (перекрытые) и был ли успешен поиск окна с которого собственно возможно произвести захват в перерытом состоянии.

А подскажите еще пожалуйста.. я так понял что для поиска цветов нужен только w7 (aero)? В w10 это не будет работать?

Автор: MaXiS 26.12.2019, 18:13

Не получилось найти картинку а эмуляторах блюстак и мему, аеро гласс не помог, мало ли кому будет полезно, не тратьте время )

Автор: Automaton 30.12.2019, 22:41

Цитата(фонарик @ 19.12.2012, 14:55) *
set $a findcolor

А так разве будет работать, если "а" строковая переменная?

Цитата
# - признак числовой переменной, может содержать только числа, позволяет выполнять математические операции.
$ - признак строковой переменной, может содержать любые символы.


П.С. ого какую старую тему 2013 года подняли, я и не заметил сразу.

Автор: DarkMaster 31.12.2019, 20:56

Цитата
Не получилось найти картинку а эмуляторах блюстак и мему, аеро гласс не помог, мало ли кому будет полезно, не тратьте время

Получилось найти картинку в memu и nox. Все шуршит =)
Цитата
А так разве будет работать, если "а" строковая переменная?

Да, но при сравнении нужно понимать, что она строковая. Там был когда-то давно баг и приходилось писать строковую, чтобы ошибки не выбивало. Сейчас можно спокойно использовать числовую.

Автор: MaXiS 14.1.2020, 12:10

Цитата(DarkMaster @ 31.12.2019, 20:56) *

Получилось найти картинку в memu и nox. Все шуршит =)

Да как так то?)

Код

log clear
set #ownerHandle findwindow (GoGi)
//Поиск флота
set #flot findimage (16, 55 91, 395  (flot.bmp) %arr 2 90 20 15 #ownerHandle)
if #flot > 0
log Картинка найдена
left  %arr [1 1] %arr [1 2]
end_if
wait 2s


Эмулятор Nox, w10 pro чистая.
Хелп )

Автор: cirus 14.1.2020, 12:19

Цитата
set #flot findimage (16, 55 91, 395 (flot.bmp) %arr 2 90 20 15 #ownerHandle)

Код
set #flot findimage (16, 55 91, 395  (flot.bmp) %arr #ownerHandle 90 20 15)

Автор: MaXiS 14.1.2020, 12:35

Цитата(cirus @ 14.1.2020, 12:19) *

Код
set #flot findimage (16, 55 91, 395  (flot.bmp) %arr #ownerHandle 90 20 15)



Спасибо больше, перепутал с Get color скорей всего, там хендл в конце.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)