Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

как написать бот на делфи

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 10.01.2013, 22:00   #1
 Разведчик
Аватар для libertas
 
libertas никому не известный тип
Регистрация: 03.11.2010
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
Thumbs down как написать бот на делфи

Доброго времени суток всем!
ПроГуглил, ПроЯндексил, ПроМаилрушил весь рунет, но адекватного решения так и не нашел.
По этому обращаюсь к вам!!!
Задался идеей написать простенький бот для онлайн игры (неважно какой) на Delphi. не большой опыт программирования есть.
Условия в игре:
1. я бью мобов на 10 левлов ниже себя - контролировать манну и хп не надо (урона по мне не проходит);
2. бью массами (к примеру на кнопках F1 и F2) - то есть таргет мобов не нужен;
3. сбор лута на кнопке - Q или на панели F5
Итог надо, чтоб бот посылал в окно игры эмуляции нажатия F1, F2, F5, и всё это в свернутое окно.

А теперь к сути вопроса…
С помощью SPY++ нахожу хендл окна, а дальше...
Keybd_event в данном случае не подходит как и SendMassage, т.к. в первом случае хоть и указывал хендл окна нажатие происходит в моем окне(может что не правильно сделал); а во втором случае меняется только название окна.
Потом пришел к такому решению PostMessage(Handle, WM_KEYDOWN, VK_F1, 0) , но и это не дало желаемого результата. Работало в простеньких играх и приложениях виндовс (типо блокнота) и ни фига не хотело работать с приложениями директикс.
Потом мне подсказали сделать это так PostMessage(Handle, WM_IME_KEYDOWN, VK_F1, 0), заработало но только при условии открытого окна Т.т

Внимание вопрос Ы:
- Как заставить работать программу со свернутым окном игры?
- Может кто знает другой способ рения этой проблемы?
- Может где есть на форуме дайте ссылку?
- Может у кого есть исходник готовой схожей программы дайте плиз?

З.Ы. За раннее всем благодарен за помощь
  Ответить с цитированием
Старый 10.01.2013, 22:26   #2
Reaper
 Фельдмаршал
Аватар для Dinmaite
 
Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
Отправить сообщение для Dinmaite с помощью ICQ
 
По умолчанию Re: как написать бот на делфи

Вообще-то игра имеет значение. К примеру в Ла2 таким образом ничего не сделаешь, в ПВ - всегда пожалуйста, в JD - не будут действовать доп. клавиши. Еще в коком-то проекте от мылару (не помню название) придется искать не хендл окна, а хендл контрола, отображающего картинку. Это только то что удалось вспомить на первый момент.
  Ответить с цитированием
Старый 10.01.2013, 22:51   #3
 Старший сержант
Аватар для Sinyss
 
Sinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака НоррисаSinyss троюродный дядя Чака Норриса
Регистрация: 29.07.2011
Сообщений: 197
Популярность: 8989
Сказал(а) спасибо: 45
Поблагодарили 175 раз(а) в 139 сообщениях
Отправить сообщение для Sinyss с помощью Skype™
 
По умолчанию Re: как написать бот на делфи

Цитата:
Сообщение от libertasПосмотреть сообщение
- Может кто знает другой способ рения этой проблемы?

Полная реализация клиента, но без текстур с нужным функционалом... но как - твои проблемы )
  Ответить с цитированием
Старый 10.01.2013, 23:09   #4
 Старший сержант
Аватар для metraz
 
metraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядомmetraz в состоянии испепелить взглядом
Регистрация: 25.12.2011
Сообщений: 191
Популярность: 5259
Сказал(а) спасибо: 31
Поблагодарили 235 раз(а) в 135 сообщениях
Отправить сообщение для metraz с помощью Skype™
 
По умолчанию Re: как написать бот на делфи

большинство игр не поддерживают нажатия в свернутом режиме. Опять же, еще зависит от того какая игра.
  Ответить с цитированием
Старый 10.01.2013, 23:09   #5
 Разведчик
Аватар для Эмрис
 
Эмрис на правильном пути
Регистрация: 05.01.2011
Сообщений: 2
Популярность: 24
Сказал(а) спасибо: 4
Поблагодарили 14 раз(а) в 9 сообщениях
 
По умолчанию Re: как написать бот на делфи

Цитата:
Сообщение от DinmaiteПосмотреть сообщение
Вообще-то игра имеет значение. К примеру в Ла2 таким образом ничего не сделаешь, в ПВ - всегда пожалуйста, в JD - не будут действовать доп. клавиши. Еще в коком-то проекте от мылару (не помню название) придется искать не хендл окна, а хендл контрола, отображающего картинку. Это только то что удалось вспомить на первый момент.

[Ссылки могут видеть только зарегистрированные пользователи. ] - про хэндл
  Ответить с цитированием
Старый 10.01.2013, 23:33   #6
 Разведчик
Аватар для libertas
 
libertas никому не известный тип
Регистрация: 03.11.2010
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: как написать бот на делфи

Ваши ответы учтены. Но принципиально ничего нового я не узнал.
А про то что игры разные бывают я уже писал
Цитата:
Потом мне подсказали сделать это так PostMessage(Handle, WM_IME_KEYDOWN, VK_F1, 0), заработало но только при условии открытого окна Т.т

Вот часть кода которая работает но только при открытом окне игры
Цитата:
var h:HWND;
begin

sleep(2000);
h:= FindWindow('Game L',nil);
SetForegroundWindow(h);
PostMessage(h, WM_IME_KEYDOWN, VK_F1,MapVirtualKey(VK_F1, 0));
end;

а я хочу чтоб это передавалось в свернутое окно но похоже что это НЕ РЕАЛЬНО
  Ответить с цитированием
Старый 12.01.2013, 00:17   #7
Reaper
 Фельдмаршал
Аватар для Dinmaite
 
Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
Отправить сообщение для Dinmaite с помощью ICQ
 
По умолчанию Re: как написать бот на делфи

И для чего здесь фейспалм?

Могу посоветовать еще использовать инжекты кода в процесс игры, инжектирование библиотек в процес игры.
Таким методом можно воздействовать либо напрямую вызывая необходимые функции, либо имитируя опрос DirectPlay.

Кроме того, можно вычленить функцию, которая блокирует обработку сообщений при свернутом окне.
  Ответить с цитированием
Старый 12.01.2013, 05:21   #8
 Разведчик
Аватар для libertas
 
libertas никому не известный тип
Регистрация: 03.11.2010
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: как написать бот на делфи

ОГРОМНОЕ СПАСИБО всем за ответы!!!
ПРОБЛЕМА РЕШЕНА!!!
Способом который уже пробовал, но видимо, что-то, где-то не до глядел
ВОТ ТАК:
Код:
SetForegroundWindow(FindWindow('Game L',nil));
keybd_event(VK_F1, MapvirtualKey(VK_F1, 0), 0, 0);
keybd_event(VK_F1, MapvirtualKey(VK_F1, 0),KEYEVENTF_KEYUP , 0)
теперь работает в свернутом окне, только пришлось стандартный звук винды отключать чтоб не пищал

З.Ы. Еще раз спасибо и сори что из за своей тупости парил вам мозги.
З.Ы.Ы. Отдельно огромное спс, Dinmaite, подкинул пищу для ума про
Цитата:
инжекты кода в процесс игры

для меня это что то новенькое , буду изучать=)

Последний раз редактировалось libertas; 12.01.2013 в 05:30.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как написать бот на делфи. l_F Общение разработчиков 12 25.01.2011 11:44

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 07:14.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net