Как определить нажатия клавиш в Windows без высокой загрузки ЦП? - PullRequest
0 голосов
/ 09 июля 2020

В моей программе командной строки Windows я жду, когда пользователь одновременно нажмет левый Shift и левый щелчок, чтобы продолжить выполнение остальной части программы. Командная строка не будет в фокусе при нажатии комбинации клавиш.

Мой текущий код:

#include <iostream>
#include <windows.h>

int main()
{

  std::cout << "Press left shift and left click to start\n";

  // GetKeyState() returns 0 or 1 when key is not pressed, and -127 or -128 when key is pressed
  while (GetKeyState(VK_LSHIFT) >= 0 || GetKeyState(VK_LBUTTON) >= 0) {
    ;
  }

  std::cout << "Starting\n";

}

Текущий код работает. Однако, когда пользователь ожидает ввода комбинации клавиш, загрузка центрального процессора одного ядра составляет 100%. 1008 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...