|
Не работает color в перекрытом окне |
|
|
| RedFox2026 |
1.8.2026, 19:33
|
 
Neophyte
Сообщений: 14
Регистрация: 27.7.2026 Группа: Пользователи Наличность: 20
Пользователь №: 21.100
Возраст: 43

|
Доброго времени суток! При написании бота для онлайн игры столкнулся с проблемой, что некорректно определяется цвет перекрытого окна в браузере. Пробовал в разных браузерах и на разных компьютерах результат отрицательный, очень прошу помочь! Пробовал как на lua так и встроенным, пример: Код --lua -- определить цвет в перекрытом окне local handle = findwindow("Яндекс") local x, y = 89, 386
if handle then -- если рабочее окно найдено if color (x, y, handle[1][1]) == 255 then -- определить цвет в рабочем окне в координатах 89 386, если он равен 255 log ("Цвет совпал") -- показать сообщение else log ("Цвет не совпал") end else log ("Окно не найдено") end
и прочие подобные не сработали. Проблема - цвет определяется корректно, пока окно на экране, как только нужных пиксель перекрыт - возвращается цвет другого окна. Хендлы передавал всеми возможными способами. Если поможет, речь идет о Хроники Хаоса мобильная версия, но в web https://www.hero-wars-alliance.com/?beta-testНажатия и в целом скрипты в не перекрытой вкладке браузера работают исправно. Но с открытым окном есть другая проблема, браузер firefox, при переносе скрипта на другой комп многие координаты цветов изменяются, хотя координаты везде относительные указываю, не abs.
|
|
|
|
|
|
Ответов(1 - 19)
| RedFox2026 |
3.8.2026, 17:18
|
 
Neophyte
Сообщений: 14
Регистрация: 27.7.2026 Группа: Пользователи Наличность: 20
Пользователь №: 21.100
Возраст: 43

|
Цитата(DarkMaster @ 2.8.2026, 14:23)  local handle = findwindow("Яндекс") log(handle[1][1])
Посмотрите, что там. Может он вообще не находит ничего и вы вяжетесь к рабочему столу.
делаю так: Код set #handleWin findwindow ("Хроники Хаоса") set workwindow #handleWin
log #handleWin
если вкладка активна, в логе число, например 67912, если выбрана соседняя вкладка то 0. Цитата(DarkMaster @ 2.8.2026, 14:23)  разрешение скорее всего другое либо размер окна.
разве разрешение и размер окна должны на это влиять, при указании относительных координат? Помнится в других играх, Небеса например, скрипт без проблем переносился. Так же и тут: Код --lua -- определить цвет в перекрытом окне local handle = findwindow("Хроники Хаоса") local x, y = 89, 386
if handle then -- если рабочее окно найдено if color (x, y, handle[1][1]) == 255 then -- определить цвет в рабочем окне в координатах 89 386, если он равен 255 log ("Цвет совпал") -- показать сообщение else log ("Цвет не совпал") end else log ("Окно не найдено") end
при неактивной вкладке - Окно не найдено, при активной - если пиксель не перекрыт то Цвет совпал, если перекрыт - Цвет не совпал
|
|
|
|
|
|
| RedFox2026 |
3.8.2026, 19:42
|
 
Neophyte
Сообщений: 14
Регистрация: 27.7.2026 Группа: Пользователи Наличность: 20
Пользователь №: 21.100
Возраст: 43

|
Цитата(DarkMaster @ 3.8.2026, 19:25)  так давайте не смешивать все в кучу. при переключении вкладки у вас окно не скрывается, его более не существует. Там полностью с нуля перерисовывается все в том же самом окне.
принято, ок. Цитата(DarkMaster @ 3.8.2026, 19:25)  По открытой вкладке. Хэндл точно снимаетс и пишется в лог? Это тот же самый хэндл, что и при ctrl+a? В других браузерах пробовали?
пробовал в firefox и chrome, безрезультатно. По ctrl+a возвращается другой хендл. Но если я подставляю его в Код set #handleWin findwindow ("Хроники Хаоса") //set workwindow #handleWin // UOPilot привяжется к последнему активному окну Хроники Хаоса. log #handleWin //set #a findcolor ( 548 437 1356 496 1 1 (204) %close workwindow() ) // поиск в рабочем окне //log #a
get color #color 1262 308 6098450 // получаем цвет в координатах 100 150, окно может быть перекрыто log #color end_script
то результат всего 0 (имею ввиду цвет не возвращается), в любом бразуре/компе
|
|
|
|
|
|
| RedFox2026 |
3.8.2026, 20:10
|
 
Neophyte
Сообщений: 14
Регистрация: 27.7.2026 Группа: Пользователи Наличность: 20
Пользователь №: 21.100
Возраст: 43

|
Цитата(Madeus @ 3.8.2026, 19:52)  Привяжите окно удобным сопсобом, сделай скрин через getimage, сохраните полученное изображение через saveimage и проверьте что там видно. Последнее время браузеры отдают черный экран если окно привязано, поможет только работа с абсолютными координатами без привязки к окну.
вот так сохранил: Код set #handleWin findwindow ("Хроники Хаоса") set workwindow #handleWin
set %a GetImage (100 100 1000 1000) // сохранить в памяти часть экрана от координат 100 100 до 1000 1000 //set #type %a [1 1] // адрес в памяти //set #a findimage (0 0 901 901 (C:\test.bmp) %arr #type 80 1) // искать картинку test.bmp на изображении хранящемся в памяти // в качестве типа поиска указан адрес в памяти // искомая картинка на экране уже может отсутствовать, по сути поиск ведётся на скрине //log #a // результат поиска //if #a > 0 // если изображение найдено // move %arr [1 1] %arr [1 2] // переместить курсор на найденное изображение //end_if set $bmp SaveImage (%a [1 1] c:\games\Image.bmp) // если нужно, можно сохранить полученное изображение на диск C:\ set $b DeleteImage (%a [1 1]) // удалить изображение из памяти End_script
картинка есть, НО! Если часть игры перекрыть, то другое окно тоже есть на картинке!
|
|
|
|
|
|
| Madeus |
4.8.2026, 23:03
|

    
Journeyman
Сообщений: 340
Регистрация: 19.11.2019 Группа: Пользователи Наличность: 13259
Пользователь №: 19.451
Возраст: 32

|
Цитата(DarkMaster @ 4.8.2026, 15:48)  Что за wapper? Гуглится хрень. 3 party side
RDP Wrapper разрешает неогарниченное количество подключений RDP на не серверных версиях Windows. В новых релизах Windows 11 необходимо патчить termsrv.dll иначе буджет ошибка подключения на localhost. ПатчДля тех кто не в курсе. Ставим RDP Wrapper, патчим termsrv.dll ребутаемся. Создаем новых пользователей в ОС и подключаемся под ними на localhost через удобный софт, я юзаю MobaXterm. Запускаете там, что вам нужно. Важно, если используется движение мыши то окно лучше сврнуть, иначе может перехватить вашу мышь. Цитата(RedFox2026 @ 4.8.2026, 22:55)  С rdp столкнулся с другой проблемой. Есть миникомп который всегда включен, подключился к рдп запустил скрипт - все работает. Но при отключении по рдп вся активность прекращается, хотя программы не закрываются. Можно это как то побороть?
Я не отключаюсь, да и зачем, у меня железо работает 24/7.
|
|
|
|
|
|
12 чел. читают эту тему (гостей: 12, скрытых пользователей: 0)
Пользователей: 0
|
|