![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Приветствую уважаемые форумчане!
Вообщем пытаюсь реализовать некое подобие бота для игры. Выглядит игра следующим образом: ![]() Желтый кружок передвигается плавно с лева на право. Необходимо что бы программа как то определяла положение желтого круга в необходимом месте и производила нажатие кнопки. Хотя бы подскажите в какую сторону копать а то я ума не приложу как это сделать. Заранее спасибо. |
#2
|
||||
|
||||
![]() 1. Узнать хандл окна, откуда будем брать цвет FindWindow()
2. Получить графический контекст этого окна GetDC() 3. Получить цвет пикселя по координатам GetPixel() Код:
Var DC: HDC; Color: TColor; begin DC := GetDC(FindWindow('Project5', '')); Color := GetPixel(DC, 40, 40); Caption := IntToHex(GetRValue(Color), 2)+IntToHex(GetGValue(Color), 2)+IntToHex(GetBValue(Color), 2); end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Alloc (27.09.2015)
|
#3
|
||||
|
||||
![]() А еще потом ReleaseDC. Иначе можно утечку получить.
jmp $ ; Happy End! The Cake Is A Lie. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
Alloc (27.09.2015)
|
#4
|
||||
|
||||
![]() спасибо большое за ответ, я попробую)
|
#5
|
||||
|
||||
![]() А вы не подскажите как это сделать через ScanLine? я слышал так намного быстрее получается. Заранее спасибо
|
#6
|
||||
|
||||
![]() ScanLine - это к делфовым битмапам, а DC - это WinAPI. К тому же для одного пикселя scanline не быстрее.
jmp $ ; Happy End! The Cake Is A Lie. |
#7
|
||||
|
||||
![]() А вы не могли бы поправить код моей программы? Что то не получается у меня и не понимаю в чем дело...
При нажатии Ctrl+Alt+Space она запоминает координаты мышки и цвет пикселя, после чего запускается таймер с интервалом "1". В таймере сравнивается пиксель который мы сохранили и текущий, если они равны тогда нажимается пробел. Проблема в том, что во первых она нажимает кнопку с небольшим опозданием (а это очень важно) и во вторых почему то не всегда срабатывает.. Вот сам исходник: Код:
deleted К сожалению не знаю как в спойлер это поставить.... Буду вам очень благодарен за помощь. Последний раз редактировалось Alloc, 01.10.2015 в 19:50. |
#8
|
||||
|
||||
![]() спасибо всем за помощь, разобрался более или менее
Последний раз редактировалось Alloc, 01.10.2015 в 19:51. |