![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Katko |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 11.9.2007 Репутация: нет Всего: нет |
Доброго времени суток
Ставлю глобальный хук на окно приложения (функция-фильтр в dll). Надо записывать события мыши и клавиатуры для пересылки по сети и воспроизведения на другой машине. Пока работаю с записью. Прога и dll компилятся , но не работают как надо. Файл с полями структуры не создается. Помогите найти ошибку, буду очень благодарна. Вот dll:
Вот прога:
|
||||
|
|||||
Katko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 11.9.2007 Репутация: нет Всего: нет |
Одну решили - две родили
![]() 1. Подскажите, как отработать выпадение из хука? а то виснем чутка насмерть... 2. Где регистрировать хук? В цикле сообщений или раньше? |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Хук написан неправильно:
|
|||
|
||||
Katko |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 11.9.2007 Репутация: нет Всего: нет |
xvr,
Вышеуказанные ошибки исправила. Теперь и хук ставится и файл создается. Только сам файл пустой ![]() Новый код dll:
При проходе пошаговым дебагером не все параметры инициализируются значениями. hook в основном файле остается неопределенным и hwnd в цикле обработки сообщений тоже. Хотя, судя по отсутствию реакции на ввод, хук ставится:
|
||||||
|
|||||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Во первых - прога расчитанна на перехват ТОЛЬКО своих сообщений или всех в системе? Если первое, то ни .sh_seg ни отдельная dll не нужны. Если второе - то так работать с файлом нельзя - будут несколько открытых хэндлов на один и тот же файл, результаты записи непредсказуемы.
Теперь собственно по коду:
Это сообщение отредактировал(а) xvr - 30.3.2009, 21:30 |
|||
|
||||
Katko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 11.9.2007 Репутация: нет Всего: нет |
xvr, спасибо
![]() События надо хватать на одной машине под одним пользователем, а воспроизводить на другой под другим. Что-то вроде Radmin'а должно получиться. В MSDN я читала, что хук, который не в dll, только под одним профилем работает ![]() ![]()
При пошаговом дебаге на этой строке залипает, как при установке хука. А в ОС нет никаких задержек. Может лучше снятие хука в dll поместить? |
|||
|
||||
xvr |
|
||||||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
В одном приложении или в нескольких?
![]()
|
||||||||||||
|
|||||||||||||
Katko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 11.9.2007 Репутация: нет Всего: нет |
А залипание ввода после установки JOURNALRECORD хука - это нормально или у меня руки не из того места растут? Я так поняла из MSDN, что при nCode = HC_ACTIOТ события обрабатываются как обычно и только после этого заносятся в EVENTMSG. Может вообще не этот хук надо использовать
![]() |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Вроде ничего залипать не должно. Если только процедура самого хука не подвисла
|
|||
|
||||
Katko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 11.9.2007 Репутация: нет Всего: нет |
Спасибо за помощь.
![]() Стало понятней. Осталось жуков в коде выловить. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |