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

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Не работает color в перекрытом окне
RedFox2026
сообщение 1.8.2026, 19:33
Сообщение #1


**

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


***********

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



local handle = findwindow("Яндекс")
log(handle[1][1])

Посмотрите, что там. Может он вообще не находит ничего и вы вяжетесь к рабочему столу.
Цитата
Но с открытым окном есть другая проблема, браузер firefox, при переносе скрипта на другой комп многие координаты цветов изменяются, хотя координаты везде относительные указываю, не abs.

разрешение скорее всего другое либо размер окна.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

Контакт актуален, подпись актуальна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
RedFox2026
сообщение 3.8.2026, 17:18
Сообщение #3


**

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


при неактивной вкладке - Окно не найдено, при активной - если пиксель не перекрыт то Цвет совпал, если перекрыт - Цвет не совпал
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.8.2026, 18:31
Сообщение #4


***********

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



стоп. Не видно когда окно перекрыто или когда вы изменили вкладку? Это абсолютно разные вещи.

Цитата
разве разрешение и размер окна должны на это влиять, при указании относительных координат?

естественно. Относительные координаты - это просто изменение точки отсчета оси координат. Считать от левого верхнего угла рабочего стола или относительно левого верхнего угла окна. А дальше все тоже самое. Можете изменять размер окна при старте скрипта чтобы избежать подобных проблем(скриптом).

Цитата
Помнится в других играх, Небеса например, скрипт без проблем переносился.

там скорее всего это было обусловлено тстатичностью внутреннего окна


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

Контакт актуален, подпись актуальна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
RedFox2026
сообщение 3.8.2026, 19:00
Сообщение #5


**

Neophyte
Сообщений: 14
Регистрация: 27.7.2026
Группа: Пользователи
Наличность: 20
Пользователь №: 21.100
Возраст: 43



Цитата(DarkMaster @ 3.8.2026, 18:31) *

стоп. Не видно когда окно перекрыто или когда вы изменили вкладку? Это абсолютно разные вещи.
естественно. Относительные координаты - это просто изменение точки отсчета оси координат. Считать от левого верхнего угла рабочего стола или относительно левого верхнего угла окна. А дальше все тоже самое. Можете изменять размер окна при старте скрипта чтобы избежать подобных проблем(скриптом).
там скорее всего это было обусловлено тстатичностью внутреннего окна


при смене вкладки не работает поиск findwindow, но это не критично, главная проблема в том что при привязке к отрытой вкладке(через ctrl+a и/или через поиск хэндла) при перекрытии не работают методы findcolor/get color (
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.8.2026, 19:25
Сообщение #6


***********

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



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

По открытой вкладке. Хэндл точно снимаетс и пишется в лог? Это тот же самый хэндл, что и при ctrl+a?
В других браузерах пробовали?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

Контакт актуален, подпись актуальна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
RedFox2026
сообщение 3.8.2026, 19:42
Сообщение #7


**

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


*****

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



Привяжите окно удобным сопсобом, сделай скрин через getimage, сохраните полученное изображение через saveimage и проверьте что там видно.
Последнее время браузеры отдают черный экран если окно привязано, поможет только работа с абсолютными координатами без привязки к окну.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
RedFox2026
сообщение 3.8.2026, 20:10
Сообщение #9


**

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


картинка есть, НО! Если часть игры перекрыть, то другое окно тоже есть на картинке!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 3.8.2026, 20:57
Сообщение #10


*****

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



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


**

Neophyte
Сообщений: 14
Регистрация: 27.7.2026
Группа: Пользователи
Наличность: 20
Пользователь №: 21.100
Возраст: 43



Код

set #handleWin findwindow ("Хроники Хаоса")
set workwindow #handleWin

set %a GetImage  (100 100 1000 1000 1181744  )                 // сохранить в памяти часть экрана от координат 100 100 до 1000 1000
log #handleWin
//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

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


***********

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



попробуйте Palemoon

Сообщение отредактировал DarkMaster - 3.8.2026, 21:34


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

Контакт актуален, подпись актуальна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
RedFox2026
сообщение 3.8.2026, 21:49
Сообщение #13


**

Neophyte
Сообщений: 14
Регистрация: 27.7.2026
Группа: Пользователи
Наличность: 20
Пользователь №: 21.100
Возраст: 43



Цитата(DarkMaster @ 3.8.2026, 21:24) *

попробуйте Palemoon


в Palemoon не грузится, проверил сейчас. FireFox уже пробовал, в первую очередь. Прямо засада сплошная, неужели ничего нельзя сделать(
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 3.8.2026, 23:21
Сообщение #14


*****

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



RDP wrap и активное окно без привязки.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.8.2026, 2:51
Сообщение #15


***********

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



Цитата
RDP warp и активное окно без привязки.

Можно на локалхост подключиться через RDP. Тоже сработает.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

Контакт актуален, подпись актуальна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 4.8.2026, 10:03
Сообщение #16


*****

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



Ну RDP wrapper для этого и нужен.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.8.2026, 15:48
Сообщение #17


***********

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



Что за wapper? Гуглится хрень. 3 party side


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

Контакт актуален, подпись актуальна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
RedFox2026
сообщение 4.8.2026, 22:55
Сообщение #18


**

Neophyte
Сообщений: 14
Регистрация: 27.7.2026
Группа: Пользователи
Наличность: 20
Пользователь №: 21.100
Возраст: 43



С rdp столкнулся с другой проблемой. Есть миникомп который всегда включен, подключился к рдп запустил скрипт - все работает. Но при отключении по рдп вся активность прекращается, хотя программы не закрываются. Можно это как то побороть?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 4.8.2026, 23:03
Сообщение #19


*****

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.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.8.2026, 23:07
Сообщение #20


***********

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



Цитата
В новых релизах Windows 11 необходимо патчить termsrv.dll иначе буджет ошибка подключения на localhost.

не путаете? Там еще в древних версиях вин7 он патчился, но насколько я помню не для того, чтобы множественные подключения делать, а чтобы делать их как таковые.
Множественный вход под одним акком точно в групповых политиках правился.
ну и для подключения на локал хост нужно подключаться не на 127.0.0.1, а 127.0.0.2, 127.0.0.3 и т.д.

https://forum.uokit.com/index.php?s=&sh...st&p=419340


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

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

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

 

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