Вверх ↑
Этот топик читают: Гость
Ответов: 4
Рейтинг: 1
#1: 2015-10-14 20:22:13 ЛС | профиль | цитата
Здравствуйте,
Уважаемые Участники Форума!

Постараюсь не отнимать у Вас значительного количества времени и кратко сформулировать собственную задачу:

Преследую цель создания покерного робота. В настоящий момент нахожусь на самом первом этапе - получения информации о происходящем за столом.

Соответствующая часть схемы выглядит следующим образом:

code_36391.txt

Теперь перейду к вопросу: собственно, метод скриншота решил использовать не совсем по желанию, а исходя из обстоятельств. Дело в том, что все попытки использовать SendMessage и WM_GETTEXT провалились:

- Использовал как часть схемы из примера, так и собственные варианты
- Если это как-то поможет, то в ответ на GETTEXT программа отвечает значением "0" (выводил в окно и в список строк) - насколько могу понять, это отрицательный ответ?
- При всем вышеуказанном чат реагирует на сообщение WM_CLOSE и поддается скриншотингу, да и, кроме того, с него можно просто копировать вручную (Copy+Paste)

Собственно, вопросов два:

-Бывает ли так, что окно попросту не реагирует на сообщение GETTEXT, потому как не "научено" этому создателем или защищено от подобных действий?
-Не могли бы мне помочь "старшие" товарищи с реализацией схемы получения данных с помощью SendMessage?

P.S. Спасибо разработчиками за программу, и, как Вы, наверное, поняли, в программировании я впервые)

Спасибо!


карма: 0

0
файлы: 1code_36391.txt [952B] [215]
Гость
Ответов: 17029
Рейтинг: 0
#2: 2015-10-14 20:37:20 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-12 08:42:37
карма: 0

0
Ответов: 4
Рейтинг: 1
#3: 2015-10-14 21:29:21 ЛС | профиль | цитата
91.230.25.65 писал(а):
Из вышеизложенного кажется мне, что Вы неправильно пытались получить текст. Вот к примеру сюда загляните
http://forum.hiasm.net/forum.html?q=3&p=87832


Большое спасибо за ответ! Сейчас внимательно изучу!
------------ Дoбавленo в 20.57:
91.230.25.65 писал(а):
Из вышеизложенного кажется мне, что Вы неправильно пытались получить текст. Вот к примеру сюда загляните
http://forum.hiasm.net/forum.html?q=3&p=87832


Add(MainForm,958255,420,308)
{
Left=20
Top=105
Width=364
Height=138
Caption="WM_GETTEXT"
}
Add(SendMessage,15421399,581,385)
{
Message=13
link(onSend,13414976:doGet,[])
link(Handle,15564417:Handle,[])
link(LParam,14189995:Memory,[(601,369)(657,369)])
}
Add(Timer,8404764,420,371)
{
Interval=300
link(onTimer,5834539:doData,[])
}
Add(MemoryStream,14189995,637,322)
{
Point(Memory)
Point(doSize)
}
Add(DataToFile,13414976,637,378)
{
Type=6
link(onGet,5175552:doText,[])
link(Stream,14189995:Stream,[])
}
Add(Hub,8233292,525,371)
{
OutCount=3
link(onEvent1,14189995:doClear,[(567,377)(567,335)])
link(onEvent2,14189995:doSize,[(573,384)(573,342)])
link(onEvent3,15421399:doSendMessage,[])
}
Add(MouseEvent,15564417,567,294)
{
Point(Handle)
}
Add(DoData,5834539,476,371)
{
Data=Integer(100000)
link(onEventData,8233292:doEvent1,[])
}
Add(Memo,5175552,693,357)
{
Width=356
Height=104
Align=5
ScrollBars=3
}

Да, все верно, данную конструкцию я и подразумевал в своем первом сообщении под названием "схема из примера"

Пробовал использовать ее составляющие в собственной схеме - безрезультатно...

Кроме того, скомпилировав ее и наведя курсор на чат я ничего не получил, остальные элементы игрового стола выдают в текстовое поле формы Handle Caption, а при наведении курсора на чат - тишина.

Стоит также упомянуть, что мне доступны все сведения касательно нужного мне окна (чата):

- ClassName: Internet Explorer_Server (может быть, все дело в классе элемента?)
- Соответственно, известны размеры и координаты расположения (WinInfo)
- Caption'а у окна нет(

Все убедительнее в голове становится версия про "защиту"... Слышал, что все аналогичные программы (боты, онлайн-калькуляторы) используют скриншот.
------------ Дoбавленo в 21.29:
Тема превращается в монолог, однако, я, похоже, нашел причину отсутствия возможности получить текст путем GETTEXT:

На забугорном сайте пишут, что все дело в классе элемента (Internet Explorer_Server), и что к нему в данном случае нужно обращаться с помощью сообщения WM_HTML_GETOBJECT и получить нечто, что там называют "IHTMLDocument2 interface" - простите, я, честно говоря, попросту не знаю, что это) Наличие букв HTML приводит к мысли, что это HTML-код)

Получается там будет находится искомый текст?

Возможно ли реализовать подобное с помощью Hiasm?

P.S. Все оказалось настолько заморочено, что я уже склоняюсь к простым манипуляциям со скриншотами)
карма: 0

0
3
Сообщение
...
Прикрепленные файлы
(файлы не залиты)