Bonjour,
Je dois �crire un petit Keylogger pour windows . Apr�s quelques tests possitif sans utiliser la POO, j'ai voulu faire les choses au propre et me faire une classe :
Comme vous le voyez il y a deux fonctions callback . Leurs adresses sont pass�s en argument dans la fonction SetWindowsHookEx ():
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12 class Keylogger { public: Keylogger(); ~Keylogger(); LRESULT CALLBACK KeyBoardEvent(int code, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK MouseEvent(int code, WPARAM wParam, LPARAM lParam); private: bool MajIsPut(); };
Malheureusement, j'obtiens une magnifique erreur :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 int main() { Keylogger loger; HHOOK KeyBoard = SetWindowsHookEx(WH_KEYBOARD_LL, &loger.KeyBoardEvent, NULL, NULL); HHOOK Mouse = SetWindowsHookEx(WH_MOUSE_LL, &loger.MouseEvent, NULL, NULL); /*....*/ UnhookWindowsHookEx(KeyBoard); // decroche l'attache au keyboard UnhookWindowsHookEx(Mouse); return 0; }
Je ne comprends pas d'ou peut provenir le probl�me, sachant que la m�me utilisation sans POO marche tr�s bien .
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4 error C2276: '&'*: opération non conforme sur l'expression d'une fonction membre liée error C2660: 'SetWindowsHookExA'*: la fonction ne prend pas 3 arguments error C2276: '&'*: opération non conforme sur l'expression d'une fonction membre liée error C2660: 'SetWindowsHookExA'*: la fonction ne prend pas 3 arguments
Sans POO �a donne �a :
Doc callback windows : https://msdn.microsoft.com/fr-fr/lib...(v=vs.85).aspx
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 HHOOK KeyBoard = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, NULL, NULL); HHOOK Mouse = SetWindowsHookEx(WH_MOUSE_LL, MouseProc, NULL, NULL);
Doc setWindowsHookEx : https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
J'ai surement oubli� de pr�ciser certaines choses, n'h�sitez pas � me le faire remarquer .
Merci pour votre aide![]()
Partager