![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. Иначе можно утечку получить.
|
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
Alloc (27.09.2015)
| ||
|
#4
|
||||
|
||||
|
спасибо большое за ответ, я попробую)
|
|
#5
|
||||
|
||||
|
А вы не подскажите как это сделать через ScanLine? я слышал так намного быстрее получается. Заранее спасибо
|
|
#6
|
||||
|
||||
|
ScanLine - это к делфовым битмапам, а DC - это WinAPI. К тому же для одного пикселя scanline не быстрее.
|
|
#7
|
||||
|
||||
|
А вы не могли бы поправить код моей программы? Что то не получается у меня и не понимаю в чем дело...
При нажатии Ctrl+Alt+Space она запоминает координаты мышки и цвет пикселя, после чего запускается таймер с интервалом "1". В таймере сравнивается пиксель который мы сохранили и текущий, если они равны тогда нажимается пробел. Проблема в том, что во первых она нажимает кнопку с небольшим опозданием (а это очень важно) и во вторых почему то не всегда срабатывает.. Вот сам исходник: Код:
deleted К сожалению не знаю как в спойлер это поставить.... Буду вам очень благодарен за помощь. Последний раз редактировалось Alloc, 01.10.2015 в 19:50. |
|
#8
|
||||
|
||||
|
спасибо всем за помощь, разобрался более или менее
Последний раз редактировалось Alloc, 01.10.2015 в 19:51. |