1

Тема: AHK: ImageSearch в окнах "типа подсказок"

Прошу простить мою безграмотность, даже не знаю как такие окна "типа подсказок" называются.


Суть проблемы. Есть программа, которая выводит  на экран подобные окна.  Они накладываются на другие окна и "всегда сверху". То, что находится под ними, ImageSearch видит, а то, что в них - нет.

Есть какая-то возможность произовдить поиск именно в этих окнах, а не в тех, что под ними?

2

Re: AHK: ImageSearch в окнах "типа подсказок"

Недостаточно информации для понимания проблемы. Образец вашего кода, характеристики всплывающих окон не помешали бы.

3 (изменено: Next, 2012-08-16 15:11:27)

Re: AHK: ImageSearch в окнах "типа подсказок"

Из всех характеристик могу сказать только, что "Window Detective" их вообще не видит. Они видит только само окно приложения, которые их создаёт  и всё. C "Windows Spy" то же самое. Пробовал что-то увидеть с помощью

DetectHiddenText, on
DetectHiddenWindows, On
MouseGetPos

всё чего удаётся добиться - размеры, положение и хэндл окна типа "0x8af9485".  Больше ничего вытянуть не удаётся.

4

Re: AHK: ImageSearch в окнах "типа подсказок"

Next, можете привести общедоступный пример?

5 (изменено: Next, 2012-08-16 16:22:23)

Re: AHK: ImageSearch в окнах "типа подсказок"

http://www.holdemmanager.com/

6

Re: AHK: ImageSearch в окнах "типа подсказок"

Есть подозрение, что речь о "tooltip".

7

Re: AHK: ImageSearch в окнах "типа подсказок"

Irbis пишет:

Есть подозрение, что речь о "tooltip".

У меня тоже.

8 (изменено: Next, 2012-08-17 20:48:05)

Re: AHK: ImageSearch в окнах "типа подсказок"

У этих окон есть свои всплывающие окна. Эти на обычные всплывающие подсказки больше похожи. Вот так это выглядело в прошлой версии этой программы:

http://www.onlinepokerinfo.ru/data/1715342/Shot8_large.jpg

Чёрная узкая полоска - первое окно, а жёлтое широкое - второе.

В последней версии и то и другое серое. Но не суть.

Можно научить Imagesearch видеть те и и другие окна?

9 (изменено: creature.ws, 2012-08-17 21:39:18)

Re: AHK: ImageSearch в окнах "типа подсказок"

Картинки это хорошо, но «по фотографии» класс окна определить не получится.

Что-то мне подсказывает, что в вопросе вашем не разобраться не установив программу эту. Увы, не настолько интересная проблема.

10

Re: AHK: ImageSearch в окнах "типа подсказок"

Не знаю как передать больше информации.



Вот так это выглядит:
http://s9.postimage.org/c2jbnkc7j/image.jpg

При наведении на другие окна программы мало что меняется.

Вернусь к первоначальному вопросу. Существует ли возможность производить поиск каринок в всплывающих окнах?

11

Re: AHK: ImageSearch в окнах "типа подсказок"

Ну раз ImageSearch не работает, то встроенной возможности нету. Но раз на скрине это окно показывается, то можно сделать скриншот и вручную искать на нём.

12

Re: AHK: ImageSearch в окнах "типа подсказок"

Чтото мне подсказывает, что «поиск решения» идёт не в ту сторону

Вам нужно прочитать текстовое содержимое стандартного всплывающего окна? — пример в конце сообщения.
Вам нужно прочитать текстовое содержимое окна похожего на стандартное всплывающее но таковым не являющимся? — нужно знать «характерные признаки» этого окна.
Программа отображает в своём интерфейсе нечто похожее на всплывающие окна которые невозможно переместить вне границ клиентской области программы — ImageSearch в данном случае будет искать по заданному участку клиентской области программы, факт наличия «этих окон» не важен.

Второй снимок экрана не менее бесполезен, чем первый. Теперь известен динамически изменяющийся класс главного окна игры, почему ваш код не ищет то что вам нужно — неизвестно.

Получение текста из стандартного ToolTip:

ToolTip, % "
(
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
)"
WinGetTitle, text, ahk_class tooltips_class32 ahk_exe AutoHotkey.exe
ToolTip
MsgBox Во всплывающем окне был текст: `n`n%text%

13

Re: AHK: ImageSearch в окнах "типа подсказок"

А если предположить, что проблема не в ошибочном синтаксисе вашего скрипта и учесть, что речь о игре способной приносить доход, то «неработающий ImageSearch» — возможное проявление факта существования некой встроенной защиты от читеров.

14

Re: AHK: ImageSearch в окнах "типа подсказок"

creature.ws пишет:

А если предположить, что проблема не в ошибочном синтаксисе вашего скрипта и учесть, что речь о игре способной приносить доход, то «неработающий ImageSearch» — возможное проявление факта существования некой встроенной защиты от читеров.

Читерство тут не при чём.  Прикладываю картинку. 




http://s8.postimage.org/c6dzut66d/image.jpg







Жёлто-зелёное окно - это покерная программа. Как она там защищена от читеров - вопрос не ко мне. Я пытаюсь получить информацию не из неё, а из программы статистики которая видна на картинке в виде в виде нескольких чёрных окошек с цветными цифрами. Я хочу получить некоторое производное от этих данных статистики. Часть их даёт сама программа - в левом верхнем углу. Эта программа официально разрешена и читерством не является, как и использование её данных.

  Из всех "всплывающих" окон смог найти один вид, который имеет свой заголовок, но текст из него извлечь не удаётся. Использовал вот такой код:

WinGetTitle, title, ahk_class HwndWrapper[HoldemManager.exe;;94d5ffc9-e98e-4778-b319-3b1063dfdf7f]
WinGetText, text, ahk_class HwndWrapper[HoldemManager.exe;;94d5ffc9-e98e-4778-b319-3b1063dfdf7f]

MsgBox В окне %title% был текст: `n`n %text%

Заголовок определился, что говорит, о том,  что класс окна, взятый из  "Window Spy" верен.

Как я убедился "чёрные окошки"  -  это элементы одного окна - класс у всех один.
А "всплывающие", которые появляются при нажатии на эти "чёрненькие", имеют всегда разные классы.



  Можете подсказть путь по получению данных из первых или вторых? Или способ их прочтения при помощи ImageSearch.

15

Re: AHK: ImageSearch в окнах "типа подсказок"

Не могу подсказать способ получения данных из первых или вторых.

16

Re: AHK: ImageSearch в окнах "типа подсказок"

Александр_ пишет:

Ну раз ImageSearch не работает, то встроенной возможности нету. Но раз на скрине это окно показывается, то можно сделать скриншот и вручную искать на нём.

Как это лучше осуществить, чтобы не загромождать экран? Можно искать в "задвинутом" окне или может даже в невидимом?:P
  Или проще тогда сохранить в файл *.bmp и поискать там?  Есть способы "чтения" изображения напрямую из файла *.bmp?

17

Re: AHK: ImageSearch в окнах "типа подсказок"

Ещё вопрос. Есть ли программы или скрипты на AHK, которые читают текст с изображения на экране другими способами? Может удасться читать из скриншота намного быстрее, чем поэлементно через Imagesearch?

18

Re: AHK: ImageSearch в окнах "типа подсказок"

Может ABBYY Screenshot Reader поможет? После распознавания скриншота, копирует результат в буфер обмена.

19

Re: AHK: ImageSearch в окнах "типа подсказок"

Есть предположение, что получение нужной информации из даной программы можно более естесственным и быстрым путем - путем запроса к PostgreSQL, так как эти данные и вообще все данные из ХМ хранятся в базах. К сожалению, не обладаю информацией по формату БД и взаимодействию AHK и postgre. По-моему, на англоязычном форуме была кое-какая информация.

20

Re: AHK: ImageSearch в окнах "типа подсказок"

DJon пишет:

Может ABBYY Screenshot Reader поможет? После распознавания скриншота, копирует результат в буфер обмена.

Пробовал. Если распознавать всё сразу - путаница бешенная. Вычленить полезную инфу из миллиона лишних запятых и подчёркиваний абсолютно невозможно. Если распозновать частями - очень очень очень долго.  :"(

Irbis пишет:

Есть предположение, что получение нужной информации из даной программы можно более естесственным и быстрым путем - путем запроса к PostgreSQL, так как эти данные и вообще все данные из ХМ хранятся в базах. К сожалению, не обладаю информацией по формату БД и взаимодействию AHK и postgre. По-моему, на англоязычном форуме была кое-какая информация.

Это был бы идеальный вариант. Но как эта программа хранит данные в БД никто не знает. Я ничего не нашёл по этому поводу, как ни старался.  :"(

21 (изменено: Irbis, 2012-08-27 11:58:24)

Re: AHK: ImageSearch в окнах "типа подсказок"

Next пишет:

...Но как эта программа хранит данные в БД никто не знает.

Как никто не знает? Как раз Postgre знает об этом лучше всего. В ее составе есть pgAdmin3, и с ее помощью можно (в том числе) изучить структуру хранения данных. Надо лишь знать пароль, заданный при создании базы.
Вот пример того, что можно посмотреть по базе ПТ4, для ХМ структура будет своя, наверное, но принцип одинаков.

http://savepic.su/2378760m.png

Тут пример запроса к PostgreSQL (англ. форум)

22 (изменено: Next, 2012-08-27 15:19:06)

Re: AHK: ImageSearch в окнах "типа подсказок"

Irbis пишет:
Next пишет:

...Но как эта программа хранит данные в БД никто не знает.

Как никто не знает? Как раз Postgre знает об этом лучше всего. В ее составе есть pgAdmin3, и с ее помощью можно (в том числе) изучить структуру хранения данных. Надо лишь знать пароль, заданный при создании базы.
Вот пример того, что можно посмотреть по базе ПТ4, для ХМ структура будет своя, наверное, но принцип одинаков.

Хорошенько порылся и кое-что нашёл.

http://s14.postimage.org/sa4tii701/1052.png


Понять как этим пользоваться - не понял.  Наверное нужно браться за изучение PostgreSQL?..

23

Re: AHK: ImageSearch в окнах "типа подсказок"

Next пишет:

Наверное нужно браться за изучение PostgreSQL?..

Самый надежный вариант.
Или поспрашивать на ресурсах, более углубленно работающих с БД.

24 (изменено: Next, 2012-08-27 23:18:18)

Re: AHK: ImageSearch в окнах "типа подсказок"

Тут ещё одна сложность добавляется. Если даже найти как вызывать нужную инфу на определённого игрока из базы, нужно получить его имя перед запросом. Как его получить вообще не понятно. Читать его c экрана - та ещё заморочка:  5-10 символов по 50 значений на каждый, да на 9 игроков = 540 чтений. Наверное хранится где-то в базе и  инфа по игрокам конкретного текущего стола, но как её искать вообще не представляю.

25

Re: AHK: ImageSearch в окнах "типа подсказок"

Если речь идет о программе из этого поста, то с чтением данных в реальном времени справляется FreePHG

26

Re: AHK: ImageSearch в окнах "типа подсказок"

FreePHG работает только с Party.

27 (изменено: Next, 2012-08-31 20:20:08)

Re: AHK: ImageSearch в окнах "типа подсказок"

Попробовал сегодня ещё несколько способов.  Все чёрные окошки накладывающиеся на окно покерной программы(стол) - это одно окно.  По крайней мере при его активации через любое "окошко" - выдаётся одини и те же x,y,w,h.   Как-то оно так выполнено, что часть окна полностью прозрачна, а часть нет. Можно даже перетакскивать отдельные "окошки" внутри самого окна. 
  Удалось определить класс этого окна. Вот так он выглядит:
WindowsForms10.Window.8.app.0.16fe3df_r11_ad1
Всегда одинаково показывает, через какое бы "окошко" не активировал.

Говорит это о чём-то?

28

Re: AHK: ImageSearch в окнах "типа подсказок"

Вероятно, "непрозрачные перетаскиваемые части" - это аналог AHK SplashText или SplashImage

29

Re: AHK: ImageSearch в окнах "типа подсказок"

Тогда один и тот же класс, размер и расположение мне показывает просто потому, что они одинаковые по размеру, начинаются в одном месте и все имеют один и тот же класс? И на самом деле это не одно странное окно со огромной большой прозрачной полощадью и несколькими непрозрачными участками, а несколько?

  Я сегодня пробовал, после активации одного из "окошек", дать команду "Hide":  на мгновенье они пропадали все сразу. Это наверное говорит, о том, что это всё-таки одно окно?

30

Re: AHK: ImageSearch в окнах "типа подсказок"

Теперь точно ясно, что это одно окно. После  команды

WinSet, Transparent, 100, A

исчезают чёрные "окошки" и прозрачная область, появляется серое полупрозрачное окно совпадающее по размерам с окном покерной программы, к которому "окошки" принадлежали. Кстати Window Detective так и говорит, что это окно "owned" для окна покерной программы.

Можно какую-то полезную информацию из всего этого вытянуть?