Re[5]: Детектив под названием «Залипание DLL-хуков». Я сдаюс
От: Inversion Украина http://inve.org
Дата: 22.09.09 14:50
Оценка:
Проблема то уже решена, см. моё предыдущее сообщение :)

Но на вопросы обязательно отвечу.

CEM>Это ms spy++ или любое приложение, которое может отлавливать сообщения.

Понял. У меня Winspector. Попробовал: для cmd он не видит никаких сообщений вообще :(

I>>SetTimer(NULL, t_watchForMainApp, 4000, (TIMERPROC)tf_watchForMainApp)

I>>Вроде так и делал (ставил NULL вместо окна), иначе таймер и не хотел работать.
CEM>Ого. Вот это уже интереснее :) Т.е. даже такой таймер не работает? На вский случай спрошу, в курсе, что оконные и неоконные таймеры различаются по параметрам, возвращаемым значениям и принципу запуска при одной и той же сигнатуре SetTimer?
Не, как раз такой таймер и заработал, но о разных сигнатурах я и не подумал, так как оно заработало и я оставил так как есть.

I>>Попробовал в DLL_PROCESS_ATTACH.

I>>И FreeLibraryAndExitThread(hDllInst, 0) и FreeLibrary(hDllInst) завершают тот процесс, из которого вызываются :( Не подходит.
CEM>Хмм... не уверен, но если хэндл получить из GetModuleHandle ("<тут_имя_dll>"); ?
CEM>Т.е. я делал Free на хэндл, который получал сам, на не тот который в DllMain (hDllInst — это же про него речь?)
Да hDllInst брался с параметров и процесс у меня завершался.

CEM>Так Тотал Коммандер же не консольное окно. Там событий сыпется тысячи штук в секунду. Вся заточка на отцепление именно на _консольность_ с надеждой, что они меньше крутят функцию обработки окна.

Ага, именно это и сыграло в решении :)

Ещё раз спасибо за участие в разборе проблемы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.