Advertisement
koronabora

c++ read keyboard events windows

Apr 6th, 2020
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <Windows.h>
  4. #include <thread>
  5. #include <chrono>
  6.  
  7. using namespace std;
  8. HANDLE hstdin;
  9.  
  10. int read_key()
  11. {
  12.     INPUT_RECORD event;
  13.     if (WaitForSingleObject(hstdin, 0) == WAIT_OBJECT_0)
  14.     {
  15.         DWORD count;
  16.         ReadConsoleInput(hstdin, &event, 1, &count);
  17.         if (event.EventType == KEY_EVENT && !event.Event.KeyEvent.bKeyDown)
  18.         {
  19.             switch (event.Event.KeyEvent.wVirtualKeyCode)
  20.             {
  21.             case VK_LEFT:
  22.                 cout << "left" << endl;
  23.                 break;
  24.             case VK_RIGHT:
  25.                 cout << "right" << endl;
  26.                 break;
  27.             case VK_UP:
  28.                 cout << "up" << endl;
  29.                 break;
  30.             case VK_DOWN:
  31.                 cout << "down" << endl;
  32.                 break;
  33.             }
  34.         }
  35.     }
  36.     return 0;
  37. }
  38.  
  39. int main()
  40. {
  41.     DWORD   mode;
  42.     hstdin = GetStdHandle(STD_INPUT_HANDLE);
  43.     GetConsoleMode(hstdin, &mode);
  44.     SetConsoleMode(hstdin, 0);
  45.  
  46.     for (;;)
  47.     {
  48.         read_key();
  49.         this_thread::sleep_for(chrono::milliseconds(100));
  50.     }
  51.  
  52.     SetConsoleMode(hstdin, mode);
  53.     return 0;
  54. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement