Bonjour,
Je cr�er une classe KeyLoger qui utilise SetWindowsHookEx, celle ci a besoin d'une fonction ou d'une m�thode static pour sa callback (2i�me arg), voil� ce que ca donne :
je dois utiliser une queue � l'int�rieur de cette CallBack, le probl�me c'est que celle ci doit �tre d�clar� en static �galement ..
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 KeyLoger::KeyLoger() { HHOOK KeyBoard = SetWindowsHookEx(WH_KEYBOARD_LL, &KeyLoger::KeyboardEvent, NULL, NULL); HHOOK Mouse = SetWindowsHookEx(WH_MOUSE_LL, &KeyLoger::MouseEvent, NULL, NULL); }
et c'est la que je me prends deux belles erreurs, ce qui est normal puisqu'une m�thode statique n'a pas pour but d'acc�der aux attribut de la classe, voici les erreurs :
et
Code : S�lectionner tout - Visualiser dans une fen�tre � part LNK2001 symbole externe non résolu "private: static class std::queue<struct s_Keys,class std::deque<struct s_Keys,class std::allocator<struct s_Keys> > > KeyLoger::Keys" (?Keys@KeyLoger@@0V?$queue@Us_Keys@@V?$deque@Us_Keys@@V?$allocator@Us_Keys@@@std@@@std@@@std@@A)
voil� ma classe :
Code : S�lectionner tout - Visualiser dans une fen�tre � part LNK1120 1 externes non résolus
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 typedef struct s_Keys { int Key; bool Ctrl = FALSE; bool Alt = FALSE; bool Shift = FALSE; bool Maj = FALSE; bool Altgr = FALSE; int PosX; int PosY; int timestamp; }t_Keys; class KeyLoger { public: KeyLoger(); ~KeyLoger(); static LRESULT CALLBACK KeyboardEvent(int nCode, WPARAM wParam, LPARAM lParam); static LRESULT CALLBACK MouseEvent(int nCode, WPARAM wParam, LPARAM lParam); static std::queue<t_Keys> GetKeys(); HHOOK KeyBoard; HHOOK Mouse; private: static std::queue<t_Keys> Keys; static bool KeyIsPut(); };
et voil� comment j'utilise l'une des CallBack :
Vu que je suis oblig� d'utiliser mes Callback en statique, comment es ce que je peux acc�der � mes attributs sans casse ..?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 LRESULT CALLBACK KeyLoger::KeyboardEvent(int nCode, WPARAM wParam, LPARAM lParam) { PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT)lParam; std::string str; t_Keys UltiKey; /*...............................................*/ Keys.push(UltiKey); } } return CallNextHookEx(NULL, nCode, wParam, lParam);
Je ne vois plus trop vers quoi chercher ...
dites moi si vous voulait des infos en plus !
Merci pour votre aide![]()
Partager