![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Делаю так: при загрузке длл в пространство процесса, создаётся один новый поток, который "разгружает" HookProc (например, пришло сообщение о нажатии клавиши - сигналим потоку, и выходим из KbdHookProc, а поток сам обработает код клавиши).
Трабл: при выгрузке длл (когда процесс закрывается), хук подвешивает систему секунд на 5 - такое впечатление, что поток не даёт длл выгрузиться. Даже если поток ничего не делает а просто "спит" - всё равно такая борода. Убить поток TerminateThread'ом почему-то не получается (по логике, там где DllMain стоит DLL_PROCESS_DETACH, надо убить поток). Помогите, плиз, кто чем может Поправка: теперь при выходе из приложения - сервера хука, все остальные приложения в которых, например, нажимались клавиши - убиваются тоже. Стоит убрать CreateThread из DllMain - всё Ok. Вообще какой-то злобный глюк. Это сообщение отредактировал(а) mr.DUDA - 22.11.2003, 22:12 -------------------- ![]() |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: нет Всего: 64 |
mr.DUDA Я сейчас точно не помню, но пример потока в чужом АП приводится в книге Джерефи Рихтера(правда не помню какой )), в этой ниге еще про перехват АПИ идет описание).
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |