Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Можно ли в хуке создать поток? 
:(
    Опции темы
mr.DUDA
  Дата 22.11.2003, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Делаю так: при загрузке длл в пространство процесса, создаётся один новый поток, который "разгружает" HookProc (например, пришло сообщение о нажатии клавиши - сигналим потоку, и выходим из KbdHookProc, а поток сам обработает код клавиши).

Трабл: при выгрузке длл (когда процесс закрывается), хук подвешивает систему секунд на 5 - такое впечатление, что поток не даёт длл выгрузиться. Даже если поток ничего не делает а просто "спит" - всё равно такая борода. Убить поток TerminateThread'ом почему-то не получается (по логике, там где DllMain стоит DLL_PROCESS_DETACH, надо убить поток). Помогите, плиз, кто чем может omg.gif

Поправка: теперь при выходе из приложения - сервера хука, все остальные приложения в которых, например, нажимались клавиши - убиваются тоже. Стоит убрать CreateThread из DllMain - всё Ok.

Вообще какой-то злобный глюк.

Это сообщение отредактировал(а) mr.DUDA - 22.11.2003, 22:12


--------------------
user posted image
PM MAIL WWW   Вверх
<Spawn>
Дата 23.11.2003, 05:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: нет
Всего: 64



mr.DUDA Я сейчас точно не помню, но пример потока в чужом АП приводится в книге Джерефи Рихтера(правда не помню какой )), в этой ниге еще про перехват АПИ идет описание).


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1556 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.