Что нового

[Автоматизация] Как определить цвет пикселя в окне Rappelz (и ряде других окон)?

sim

Новичок
Сообщения
3
Репутация
0
ПРОБЛЕМА:
При разработке бота для игры Rappelz столкнулся с проблемой: функции "PixelGetColor" и "PixelSearch" отказываются видеть окно программы и его содержимое.
То же самое происходит при попытке определить цвет в окнах программ: "Desktop Sidebar" - аналог боковой панели в XP и "Rocket Dock".
Из форума я понял, что прорисовка окон, возможно, происходит с помощью DirectDraw или иным не стандартным способом, и поэтому цвет точек нельзя определить стандартными функциями. В сети я нашел утилиту, которая видит содержимое окна - ColorPic.
ВОПРОС:
Подскажите, каким образом можно определить цвет точки в видимой части экрана? (/в окне), функцию PrintScreen игра блокирует.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Если ты работаешь с игрой, тебе надо отключать ее защиту.
 
Автор
S

sim

Новичок
Сообщения
3
Репутация
0
Belfigor сказал(а):
Если ты работаешь с игрой, тебе надо отключать ее защиту.

- но ведь кроме игры не работают и другие окна.
- почему тогда, например, экранная лупа WinXP видит содержимое!?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Если ты можешь узнать цвет пикселя с помощью Au3Info, значит можешь и с помощью самого автоита => Если Au3Info работает а твой скрипт нет - возможно ошибка где-то в твоем скрипте. Я с Рапплезом не сталкивался, более точно ничего сказать не могу.
 
Автор
S

sim

Новичок
Сообщения
3
Репутация
0
Belfigor сказал(а):
Если ты можешь узнать цвет пикселя с помощью Au3Info, значит можешь и с помощью самого автоита => Если Au3Info работает а твой скрипт нет - возможно ошибка где-то в твоем скрипте. Я с Рапплезом не сталкивался, более точно ничего сказать не могу.

Проверил на боковой панели Desktop Sidebar (Rappelz не запускал). Au3Info определяет окна в панели, выдает заголовки и текст, но цветов (Magnify) - нет, просто пустой экран... Можно ли определить цвета через обращение к DLL напрямую? или непосредственно из видеопамяти (не знаю, как из Autoit к ней обратиться).

Во вложениях я прикрепил скрины Au3Info (не видит цвета) и ColopPic (видит), но не подходит для задачи, так как нельзя получить цвет в нужной точке и прочитать его.

Могу скинуть дистрибутив панели Desktop Sidebar 11Мб

PS. в сети нашел информацию: Можно определить цвет точки с помощью DirectDraw (http://www.piter-press.ru/lib/978531400113/gwin.phtml?fil=wgp01), но мне, как начинающему программеру, тяжко разобраться с терминами, да и С++ я знаю плохо... Может кто помочь?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Я к несчастью таким образом с пикселями тоже не работал. Все же в случае с рапплез настоятельно рекомендую поискать информацию о том как ломается game guard этой игры. По опыту других игр рассматривавшихся на этом форуме - блокировка работы гейм гварда решала подобные проблемы.
 
Верх