| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Управление сторонней программой |
| Автор: everyone 26.2.2009, 21:19 |
| Стоит задача написать бот для покер-клиента. смысл в том, что нужно получать данные из окна программы X. И затем, обработав их, программно манипулировать элементами той же самой программы X. Всё вроде бы тривиально. Но здесь сразу и возникла проблема. Как находить эти самые окна, и элементы в них? Как к ним обращаться? и как ими программно управлять? мне нужно хотя бы направление, в котором искать решение. я знаю C++ на уровне университетских задачек, но почему-то мне кажется, что на этом языке реализовать проект проще всего. |
| Автор: ИванМ 26.2.2009, 21:35 |
Направление: GetWindow, FindWindow |
| Автор: everyone 26.2.2009, 22:28 |
| нашёл утилиту WinSpy - вроде для поиска свойств сторонник окон. Надеюсь это работает с GetWindow, FindWindow всё ясно. В теории спасибо |
| Автор: azesmcar 27.2.2009, 19:36 |
| Задача не из простых, возможно придется писать распознование изображений чтоб понять какие карты и тому подобное..хотя не факт, зависит от покер клиента, посмотри ссылку http://www.codingthewheel.com/archives/how-i-built-a-working-online-poker-bot-4 Если ты всерьез решил этим занятся то должен знать какие могут быть проблемы, если просто хочешь поразвлечся немного опишу 1. Клиенты в основном постоянно обновляются, возможно с каждым клиентом тебе придется менять бота 2. Многие серьезные производители покерных онлайн игр вписывают алгоритм распознавания ботов, так что опять такие придется менять бота. и тому подобное... Делается это с помощью внедрения ДЛЛ и перехвата функций. Но надо подробно изучить конкретный клиент чтобы написать для него приличного бота. Написанием покер ботов занимаются серьезные фирмы - которые серьезно зарабатывают на этом..да и серьезно вкладывают..игровой бизнес - самый прибыльный после наркотиков Я это рассматривал когда-то по работе, проблем не оберешся. Будут вопросы - обащяйся |
| Автор: everyone 14.3.2009, 14:24 |
| первые тридцать секунд мне казалось, что всё будет гораздо проще. единственным верным решением теперь мне кажется графическое распознавание. Чтобы не слишком глубоко углубляться в программирование и обучение нейронной сети, есть проект - http://www.cuneiform.ru/. похоже у меня появилось новое хобби) |
| Автор: snakeron 1.4.2009, 10:53 | ||
| Привет. Недавно озадачился такой же проблемой. Поиск в гугле ничего не дал, пофлудил по форумам, и только сдесь нашёл нечто подобное.
Хотелось бы узнать, что ты выяснил? Есть ли какие-либо результаты? |
| Автор: everyone 5.4.2009, 20:43 |
| Я пришёл к выводу, что нужно писать программу со зрительным распознаванием стола и эмуляцией мыши, чтобы не болела голова по поводу систем распознавания ботов. GetWindow, FindWindow ничем не могут помочь. Покер-клиенты в плане составляющих компонентов похожи на чёрные ящики. Если и удаётся добраться до захудалой кнопки, то добиться от неё связной информации невозможно (я не смог; мметоды тестировал на MansionPoker) Вспомнил C++, прочитал тёмные для меня главы Cuneiform работает... судя по их форуму) Всё могло быть и немного лучше, но как всегда... время заниматься одному такими вещами сложно и не интересно |
| Автор: everyone 5.4.2009, 22:42 |
| Cuneiform не распознаёт маленькие символы. Пришлось растягивать изображение, применять инверсию и повышать резкость. Картинка в файле. результат: marlon8585 2,980, Folded Это результат получен в стандартной GUI программе. Что касается сборки их исходников, как я понял, без VС++ не обойтись, а значит бесплатно проект не собрать. Или, если смотреть на вещи оптимистичнее, среда разработки определилась |
| Автор: jonie 6.4.2009, 08:47 |
| VC бесплатен. |