![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Mark4545 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
Код keyboard proc хука WH_KEYBOARD
не записывает в файл почему я не смогу понять, надесюь на вашу помошь. Результат гет ласт еррор 6 ( ERROR_INVALID_HANDLE) почему он инвалид не понятно. Заранее спс Да и забыл креате файл происходит в длл процесс аттач вот так
Добавлено через 5 минут и 41 секунду HANDLE HFile обьявлен глобальной переменой Это сообщение отредактировал(а) Mark4545 - 21.7.2007, 17:41 |
||||
|
|||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
При инициализации хука создаешь файл CreateFile, и хендл и PID твоего приложения расшариваешь. При инициализации DLL в DLL_PROCESS_ATTACH дублируешь хендл функцией DuplicateHandle и пользуешься им. В другом прицессе он не действителен. Его надо дублировать. Будет время напишу... |
|||
|
||||
Mark4545 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
Такое ощушение тока 586 смотрит форум и отвечатет). Пока мало понятно но буду ждать полного ответа.
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
Заметил, что после отмены хука dll'шки из процессов, окна которых свёрнуты, выгружаются не сразу. Если переключиться на это приложение, dll'шка выгружается. Так должно быть, или у меня ошибка к коде? Это сообщение отредактировал(а) 586 - 19.11.2007, 18:42 |
|||
|
||||
Mark4545 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
ща уже не в состоянии осилит код , завтра днем со свежей головой посмотрю.
Но могу сказать что когда я использовал
При переключении из одного окна в другое в лог переставало писать . При использовании простого мессадж бокса при переключении перехватывает клавиши нормально. |
|||
|
||||
Mark4545 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
так что никто не знает в чем проблема.
|
|||
|
||||
Mark4545 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
спс 2 586 о5 помог. Сурс пашет щас буду разбирать подробно.) Возможно еще вопросы появяться)
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
|
|||
|
||||
Mark4545 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
еще один сенкс то 586.Разбираю щас первый вариант кода, но никак не могу понять зачем же дублировать хэндлы?. Какнить попроще если не трудно обьясните.
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
Потому что в других процессах они не действительны. Правда, если у процесса в который внедрен хук мало привелегий, он не сможет дублировать хендл. Можно использовать второй пример, т.е. открывать и закрывать файл каждый раз после нажатия клавиши. На производительность это повлияет. Но второй пример надежнее и легче реализовывается. |
|||
|
||||
Mark4545 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
это я заметил что второй код полегче.
Ну значит основываясь на втором коде 586 начал писать библиотеку Написал:
Мистика не работает( при том что код 586 работает отлично) В чем проблема скока думал так и не нашел.Вроде фактически почти тоже самое. И вопрос №2 Конечно если я не надоел. В моем понимании Dll при глобальном хуке грузиться ко всем процессам, и каждая копия принадлежит к тому процесу к которому подгружена. Меня интересует поведение переменых которые находяться в Shared секции Dll. (и если у кого есть линк на подробные описания и работы с Shared секцией Dll пока сам искал подробных документов с маленькими примерчиками не попадались) Спс за внимание. |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
||||
|
||||
Mark4545 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
Да уж понял ошибку.
А как насчет 2го вопроса. |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
поиск по словам "shared memory" или "shared section rws"
http://www.wasm.ru/article.php?article=1005015 (читай после "Несколько комментариев от assembler.ru") |
|||
|
||||
Mark4545 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
Ассемблер мне тут не сильно поможет нужна дока на С каянить.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |