1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

Как загрузить капчу из чужого приложения в своё

Тема в разделе "Общие вопросы по С и С++", создана пользователем SaNn, 19 апр 2008.

  1. SaNn

    SaNn Гость

    Ну что форумчане, у меня к вам три очень интересных вопроса:

    1. Как найти окно в котором МОЖЕТ распологаться картинка (приложение написано фиг знает на чём, там даже у чекбоксов тип баттон!!!)?
    2. Как получить адрес (возможно URL, а возможно и нет) этой картинки?
    3. Как загрузить эту картинку в своё приложение?

    Зарание всем спасибо...
     
  2. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    В общем случае - никак. надо смотреть на конкретное приложение, например настроить ее через свой прокси, или попытаться внедрившись в процесс найти где битмап лежит.
     
  3. Yason

    Yason Гость

    SaNn
    Так картинка грузится с сервера или генерится локально? Показывается всегда в одном и том же контроле/месте окна, или где попало?
    Решение для картинки, загружаемой извне, написал grigsoft.
    Для генерируемой локально самим приложением - по заголовку получаем хендл окна, потом - GetWindowDC, потом BitBlt себе в битмап.
     
  4. SaNn

    SaNn Гость

    В общем объясню что я хочу:
    Мне захотелось написать свой spy для покера(Техас холдем), но как получить свои карты и карты флопа, тёрна и ривера я не знаю(((...
     
  5. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Это браузерный веб-клиент?
     
  6. SaNn

    SaNn Гость

    Нет это не развод и не браузерный веб клиент...
    В общем картинки лежат в папке с игрой...
     
  7. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Посмотри Spy-ем есть ли окна для отображения карт. Если нет, то узнать какая карта была отрисована, ИМХО, нельзя. Аспекты сравнения картинок я не рассматриваю.
     
  8. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    А хоть бы и были? не представляю разумную внутреннюю логику, по которой карты можно было бы прочитать из окна до того как будет необходимость отрисовать их лицом вверх. Попробовать, конечно, можно, но, на мой взгляд, единственный шанс здесь - как с любыми компьютерными игрушками - внедрение, поиск фрагментов памяти с текущей раскладкой, анализ окружения чтобы выделить правила.

    Или речь здесь идет просто об автоматизации легальной игры, а не о взломе? Тогда да, окна могут помочь, но и без них - покер вроде игра с несложной логикой вполне можно выделять фрагменты окна с картами для стандартных ситуаций
     
  9. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Без окон будет еще хуже ;)
    Так ведь никто не говорит о получении карты до ее отрисовки. По крайней мере я так понял. В обратном случае без дизассемблирования ничего точно не выйдет.
    Если клиент позволяет играть переменному количеству человек (если в покере можно ;) ), позволяет настраивать скины карт, стола и т.д., то обрабатывать "стандартные ситуации" будет сложно


    Не разбираюсь в покере... Поясните что это за карты. Вы их явно не видите, так?
    Ну с этим более-менее понятно, так как эти карты Вы видите
     
  10. SaNn

    SaNn Гость

    Именно!!!

    Проверил, вроде какието окна есть, но их имени не могу получить, что сужественно уменьшило бы объём работы...
     
  11. Yason

    Yason Гость

    Имя наверняка есть у родительского (ну или главного) окна, а у искомых дочерних есть фиксированные координаты. Существенно уменьшит объём работы функция EnumChildWindows.
    Upd: для изучения структуры чужих окон удобно использовать Spy++ из комплекта Visual Studio.
     
Загрузка...

Поделиться этой страницей