1 / 1 / 5
Регистрация: 28.03.2013
Сообщений: 299
|
|||||||||||
1 | |||||||||||
Нужно додумать код CBT хука25.12.2015, 16:13. Показов 830. Ответов 5
Метки нет (Все метки)
Написал с горем по полам CBTHook(dll) на HCBT_ACTIVATE. Суть этого хука в том что бы перехватить появление определенного окна, и получить его хендл, потом произвести с ним какие то действия.
Код хука:
Добавлено через 4 часа 53 минуты UP!!! Прошу помощи! Если нужно то не бесплатно. Добавлено через 6 минут Например открываю notepad, и что бы вписать в него текст то нужно нажать на него не один раз как обычно, а 2 раза. Добавлено через 1 час 28 минут Если делаю вот так то все норм. Но так ловятся далеко не все окна программы... хз почему.
up!!! нифига не получается! прошу помощи!
0
|
25.12.2015, 16:13 | |
Ответы с готовыми решениями:
5
нужно додумать до конца дизайн Не могу додумать код CBT хук, HCBT_CREATEWND для одного окна выполняется не однократно Вложенные циклы и итерации (нужно что бы последовательностью, нужно код усовершенствовать, ну и сам код проверить ) |
Пишу на Delphi...иногда
|
|
25.12.2015, 16:26 | 2 |
что именно не получается?
по коду: 1 для чего искать хендл окна, если он уже есть? (используется в GetWindowText) 2 стоит проверять результат SetWindowLong и не стоит необдуманно удалять имеющиеся стили при установке нового
0
|
1 / 1 / 5
Регистрация: 28.03.2013
Сообщений: 299
|
|
25.12.2015, 16:43 [ТС] | 3 |
Если ты про этот код то он не ловит те окна что мне нужны. Например дополнительные всплывающие окна он НЕ отлавливает.
Конкретно не получается сделать нормальный хук который бы хукал определенные окна до их появления. Передавал мне хендл этих окно, я производил с ними действие, и только потом окна показывались. Мой хук не работает корректно. Почему то после того как я его ставлю, у ВСЕХ программ на окна нужно жать два раза что бы оно стало активным.
0
|
Пишу на Delphi...иногда
|
|
25.12.2015, 16:53 | 4 |
конкретно этот код ловит окно с названием ScanMaster а флаг HCBT_ACTIVATE говорит о том, что окно активизируется, т.е. уже было создано, а у всплывающих окон какой заголовок? да и класс тоже стоит смотреть
результат работы функции хука необходимо возвращать всегда, также не стоит забывать о коллегах по цепочке хуков, а не только в случае "иначе"
0
|
1 / 1 / 5
Регистрация: 28.03.2013
Сообщений: 299
|
|
25.12.2015, 17:32 [ТС] | 5 |
точно такое же название у всплывающих окон.
Если я ставлю HCBT_CREATEWND, то он перехватывает окно до его создания. Тогда я не могу даже получить название создающегося окна. возможно в этом ошибка. как его возвращать? Добавлено через 28 минут Господи ну прошу дайте пример кода хука!!! Который будет возвращать хендл созданного окна!!!
0
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
25.12.2015, 19:59 | 6 |
А какая разница до или после ?
Ты же не уточнил про значит разницы никакой Даже если ты его получишь, то не факт что оно будет искомым, хотя через энное время оно им может стать, когда создавшая окно нить вызовет SetWindowText, чтобы изменить имя на нужное (не то что было указано на момент создания)
0
|
25.12.2015, 19:59 | |
25.12.2015, 19:59 | |
Помогаю со студенческими работами здесь
6
Додумать условие Не могу додумать Додумать запрос не могу додумать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |