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 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
#include <windows.h>
#include <iostream>
HHOOK hook ;
HANDLE hThread;
LRESULT CALLBACK hooker(int nCode, WPARAM wParam, LPARAM lParam)
{
if ((nCode == HC_ACTION) && (wParam == WM_KEYDOWN)) {
MSG hooked = *((PMSG)lParam);
}
return CallNextHookEx(hook,nCode,wParam,lParam);
}
void Loop() {
MSG message;
while (GetMessage(&message,NULL,0,0)) {
TranslateMessage( &message );
DispatchMessage( &message );
}
}
WORD WINAPI thread(LPVOID lpParameter) {
HINSTANCE hExe = GetModuleHandle(NULL);
hook = SetWindowsHookEx(WH_GETMESSAGE,hooker,hExe,0);
Loop();
return 0 ;
}
int main()
{
hThread = CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE) thread,
(LPVOID)NULL,NULL,NULL);
if( hThread )
return WaitForSingleObject(hThread,INFINITE);
else
return 0;
} |
Partager