![]() |
Пытаюсь самым обычным образом перехватить сообщения с клавиатуры, однако вызова функции как таковой не происходит. Явно что-то делаю не так ;). Может кто подскажет или скинет исходник.
HHOOK hook; LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam) { FILE *f; if((f=fopen("c:\\logfile.txt","a"))!=NULL) { fputc(MapVirtualKey(wParam,2),f); fclose(f); } return CallNextHookEx(hook, code, wParam, lParam); } WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { hook = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, (HINSTANCE)NULL, GetCurrentThreadId()); return 0; } |
Я могу ошщибаться, но по-моему, что бы хук работал, ф-ия реализующая его должна быть в отдельной dll. Во всяком случае, я так делал: http://ivank.ru/trash/KeyHooker.zip
|
Цитата:
|
Хотелось бы предупредить, что с этими самыми хуками не все так просто. Хочу поделиться опытом и немного "постращать". Когда-то я пытался написать прогу, которая следит за мышой. Несмотря на кажущуюся простоту, почему-то программа иногда сбоила. Я накачал кучу литературы и примеров (очень хороших примеров, профессионально написаных) и переписал все заново. Сбои продолжались. Тогда я попробовал потестировать и самые лучшие программы-примеры. Как я удивился (и, каюсь, развеселился) , когда и они начали сбоить. Хотя вроде бы, чего тут такого уж сложного-то?
Мораль. :) Хочешь чтобы хорошо работало, сделай сам. :) А еще лучше, сначала хорошо подумай, надо ли вообще делать? Опять KeyLogger? Для дельфистов хороший пример тут: http://community.borland.com/article...,10323,00.html Если же пишешь на С/С++, то естественно, Examples for using the SetWindowHookEx() function are found in the WIN32 SDK. |
Время: 13:06. |
Время: 13:06.
© OSzone.net 2001-