Второе окно не дает доступ к первому ДВА
От: korggrodno  
Дата: 19.09.10 10:55
Оценка:
Уже раньше подымал этот вопрос. Вот под общил все собранные мной знания в одном вопросе.
WinApi
Первое окно.
Кликаем на нем кнопку.
Так что вылетает второе окно.
Причем так, что к первому нету никакого доступа.
Ни мышкой ни клавиатурой.
Как для первого окна определить, что для него открыто второе окно и соответственно нету никакого доступа к первому?

пробовал IsWindowEnabled(Handle) .
Эта функция в моем случае всегда возвращает true независимо от того открыто ли второе окно.

Также пробовал SendMessageTimeout . Функция показывает висит окно или нет.
В моем случае окно при наличии второго окна первое окно откликается (не висит).
И поэтому эта функция не подходит
(Если искуственно сделать так чтобы перовое окно повисло то SendMessageTimeout показывает это)

Окна не мои. Поэтому все чего у меня есть это spy++ и хендлы к обоим окнам.
Хуки в программе использовать нельзя т.е. хук с отловом всяких EVENT_SYSTEM_DIALOGSTART не подходит.

Spy++ . Показывает. что Перовое окно это радительское окно втрому.
Второе окно не чилд первого.

Те стили которые показывает spy++ для первого окна не меняются. В зависимости от того, открыто ли второе окно.
Re: Второе окно не дает доступ к первому ДВА
От: kero Россия  
Дата: 19.09.10 12:55
Оценка:
Здравствуйте, korggrodno, Вы писали:

K>Уже раньше подымал этот вопрос. Вот под общил все собранные мной знания в одном вопросе.


Ну, нафига клонировать? В старом бы и продолжали.
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re: Второе окно не дает доступ к первому ДВА
От: CEMb  
Дата: 20.09.10 03:37
Оценка:
Здравствуйте, korggrodno, Вы писали:

K>Те стили которые показывает spy++ для первого окна не меняются. В зависимости от того, открыто ли второе окно.


Что за программа-то? Давай её сюда, мы расковыряем
Re: Второе окно не дает доступ к первому ДВА
От: SaZ  
Дата: 20.09.10 11:27
Оценка:
Здравствуйте, korggrodno, Вы писали:

K>Spy++ . Показывает. что Перовое окно это радительское окно втрому.

K>Второе окно не чилд первого.

Окно может быть дочерним по отношению к "родителю", но при этом оно не обязательно должно иметь стиль WS_CHILD.
Re: Второе окно не дает доступ к первому ДВА
От: korggrodno  
Дата: 20.09.10 12:34
Оценка:
вот лог из spy++
о том как реагирует окно на клики. При наличии второго и без него
http://xmages.net/storage/10/1/0/5/4/upload/cfeea871.png
Re[2]: Второе окно не дает доступ к первому ДВА
От: korggrodno  
Дата: 20.09.10 13:32
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Что за программа-то? Давай её сюда, мы расковыряем


вот сама программа
это покер клиент.
http://narod.ru/disk/25109014000/_ParimatchPoker_en.rar.html
Установка простая.
Скачиваем архив.
Распаковываем и запускаем файл
casino.exe
При первом запуске у вас спросит логин входа.

Вот чтобы вым было быстрее. Я сразу вам его и зарегистрировал.

pass: fcdfkn
UserName: 3066449
или
NickName: NoYesNo1

После того как вы залогинились. Вы видите зеленое окно клиента.
Жмем как на скриншоте.
http://xmages.net/storage/10/1/0/c/3/upload/749f22e1.jpg

И у вас в наличии два окна для исследования. О которых и был вопрос.
Re[3]: Второе окно не дает доступ к первому ДВА
От: SaZ  
Дата: 21.09.10 07:50
Оценка:
Здравствуйте, korggrodno, Вы писали:

K>После того как вы залогинились. Вы видите зеленое окно клиента.

K>Жмем как на скриншоте.
K>http://xmages.net/storage/10/1/0/c/3/upload/749f22e1.jpg

K>И у вас в наличии два окна для исследования. О которых и был вопрос.


А там точно 2 окна? Может просто 2-е окно рисуется?
Re[4]: Второе окно не дает доступ к первому ДВА
От: korggrodno  
Дата: 21.09.10 08:43
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>А там точно 2 окна? Может просто 2-е окно рисуется?


Да точно. Второе окно. Можно захватить потоскать.
И spy++ его как отдельное окно узнает.
И другие признаки окон
Re[3]: Второе окно не дает доступ к первому ДВА
От: kero Россия  
Дата: 21.09.10 09:38
Оценка:
Здравствуйте, korggrodno, Вы писали:

K>вот сама программа

K>это покер клиент.
K>http://narod.ru/disk/25109014000/_ParimatchPoker_en.rar.html
K>[...]
K>И у вас в наличии два окна для исследования. О которых и был вопрос.

Хм, скачивать этакий балласт неохота, и давай поступим так:
наоборот — ты скачай мою утилитку http://files.rsdn.ru/42164/wintreesnap.zip,
потом запусти свой покер и открой те окна,
после чего запусти wts_e_g.exe из архива утилитки — и получишь 2 текстовых файла (2 снимка иерархии окон на твоем компе).
Заархивируй их и выложи здесь. Возможно, все сразу и прояснится.
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[4]: Второе окно не дает доступ к первому ДВА
От: korggrodno  
Дата: 21.09.10 10:30
Оценка:
Здравствуйте, kero, Вы писали:


K>Заархивируй их и выложи здесь. Возможно, все сразу и прояснится.


http://narod.ru/disk/25147228000/4txt.rar.html
Вот архив. В нем как вы просили четыре текстовых файлов.

wts_0189_o043_0005679126_g.txt
wts_0189_o044_0005676051_e.txt
эти два файла для случая когда открыты оба окна . Покер клиент. И окно со свойствами модельного окна висящее над ним.

wts_0189_o044_0005608394_e_bez2.txt
wts_0190_o044_0005611348_g_bez2.txt
эти два файла для случая когда открыт только покер клиент. И окно со свойствами модельного окна закрыто.

Чтобы проще было найти в текстовиках нужную строчку. Вот заголовок покер клиента
"Parimatch: Nickname: Luchezarovna | Players: 7612 | Tables: 1180 | Tournaments: 354"

Что то я сам сравнивал строки инфы полученные. И ничего примечательного не увидел
Re[5]: Второе окно не дает доступ к первому ДВА
От: kero Россия  
Дата: 21.09.10 12:47
Оценка:
Здравствуйте, korggrodno, Вы писали:
[...]
Покер клиент -> "Parimatch: Nickname: Luchezarovna | Players: 7612 | Tables: 1180 | Tournaments: 354" -> HWND =00010194.

окно со свойствами модельного окна висящее над ним — которое? Над ним более 30 окон.
Что ли — с HWND=00010298 (оно, кстати, не закрывается, а просто делается невидимым)?

Если оно — то оно owned, и его owner =00010194 = покер кл.
Но: WS_-стиль этого owner-а =16ca0000 = WS_VISIBLE | WS_SYSMENU | WS_MINIMIZEBOX | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION,
т.е. нема WS_DISABLED, и поэтому похоже, что хоть и owned, но НЕ модальное.
Кстати, в этом казино нет ни одного задизабленного (через WS_DISABLED) окна.
Хотя, конечно, закрыть окну input можно и без WS_DISABLED, вариантов полно.
Посему — возможно, стоит засабклассить покер кл.
---
А вообще обилие окон в этом казино впечатляет
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[6]: Второе окно не дает доступ к первому ДВА
От: CEMb  
Дата: 21.09.10 16:58
Оценка:
Здравствуйте, kero, Вы писали:

K>[...]


Да ужеж разобрались тут
Автор: korggrodno
Дата: 20.09.10
Re[7]: Второе окно не дает доступ к первому ДВА
От: kero Россия  
Дата: 21.09.10 17:23
Оценка:
Здравствуйте, CEMb, Вы писали:

CEM>Да ужеж разобрались тут
Автор: korggrodno
Дата: 20.09.10


Развеж?
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[6]: Второе окно не дает доступ к первому ДВА
От: korggrodno  
Дата: 21.09.10 19:01
Оценка:
Здравствуйте, kero, Вы писали:


K>окно со свойствами модельного окна висящее над ним — которое? Над ним более 30 окон.

K>Что ли — с HWND=00010298 (оно, кстати, не закрывается, а просто делается невидимым)?


00010298 00010014 0003003e 00010096 00020104 00010298 00000000 00010100 72 0 w u HD 0 0 0 0 0 0 760 1696 1536 casino.exe 00400000 7e360000 7e3bc930 00000000 00000000 00000000 8c000000 00004000 0 4 c026 IME "Default IME"

Вот это окно короче было. Над клиентом. Со свойствами модального окна.
Вы правильно определили . с HWND=00010298

K>Посему — возможно, стоит засабклассить покер кл.

Может быть вы бы слегка пояснили бы, что это значит.
Или скажете какой нить термин. Чтобы удобнее в гугле было искать.
//***************************************************************************************
//***************************************************************************************
//***************************************************************************************

Здравствуйте, CEMb, Вы писали:
CEM>Здравствуйте, kero, Вы писали:
K>>[...]
CEM>Да ужеж разобрались тут
Автор: korggrodno
Дата: 20.09.10


Чета я не совсем разобрался.
Видно по логу, что приходят окну разные сообщения в различных случаях.

Можно конечно поставить. Хук. Перехватывать все сообщения окна.
Генерировать клик по окну. И смотреть через хук, что пришло окну.

Но не совсем хотелось бы использовать хуки
(мне один человек объяснял, что бы я хуки не использовал)
Мол покер клиент хуки легко замечает. И расценивает как манипуляции с ним. Незаконные.
И в ближайшем времени происходит бан.

думал,раз сообщения приходят окну разные.
Пробовал и эксперементировал. Посылать окну разные сообщения через



            int wm_msg = 0x0201;
            int terminator = 1;
            uint SMTO_ABORTIFHUNG = 0x2;
            uint SMTO_BLOCK = 0x1;
            IntPtr rez = SendMessageTimeout(Handle, wm_msg, 0, WAPI.MakeLParam(100, 100),
                                    SMTO_ABORTIFHUNG |
                                    SMTO_BLOCK, (uint)pTimeOut, ref terminator);


надеясь получить в rez или в terminator различные результаты для моих случаев.
Но пока ничего интересного не нашол
Re[7]: Второе окно не дает доступ к первому ДВА
От: kero Россия  
Дата: 22.09.10 10:51
Оценка:
Здравствуйте, korggrodno, Вы писали:

K>Чета я не совсем разобрался.

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

Чтобы просто задетектить: эмуляции драгдропа первого окна (на пиксель, через mouse_event) + GetWindowRect до и после.
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[8]: Второе окно не дает доступ к первому ДВА
От: kero Россия  
Дата: 22.09.10 11:15
Оценка:
еще проще: вместо драгдропа — попытка+проверка активизации первого окна через mouse_event.
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[8]: Второе окно не дает доступ к первому ДВА
От: CEMb  
Дата: 22.09.10 15:36
Оценка:
Здравствуйте, kero, Вы писали:

CEM>>Да ужеж разобрались тут
Автор: korggrodno
Дата: 20.09.10


K>Развеж?


Ну нашли же разницу в списке сообщений?
Re[9]: Второе окно не дает доступ к первому ДВА
От: korggrodno  
Дата: 22.09.10 16:36
Оценка:
Здравствуйте, kero, Вы писали:

K>еще проще: вместо драгдропа — попытка+проверка активизации первого окна через mouse_event.


Впринципе идея хорошя. Видимо пока так и сделаю.
Но всеравно это как то кривовато. Ну на безрыбье и рак рыба
Спасибо за идею
Re[10]: Второе окно не дает доступ к первому ДВА
От: korggrodno  
Дата: 22.09.10 20:02
Оценка:
Блин мот еще на каком умном форуме вопрос запостить.
Так по наркомански хочется найти ровное решение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.