Используйте только использование directinput при особых обстоятельствах
Хорошая особенность цикла сообщений Windows, используемого с getmessage, заключается в том, что он использует 0% использования процессора. Если вы делаете непроцессорные задачи, такие как ожидание ключа от пользователя, сбор данных от пользователя, таких как в базе данных или налоговой программе, или даже в текстовом редакторе, имеет смысл просто использовать сообщение Windows с getmessage. Для всех вышеперечисленных программ датой является процесс, когда пользователь нажимает клавишу.
Все, что необходимо для обработки ключей в цикле сообщений Windows, - это переключение этой программы. Мышь даже не должна находиться в окне.
Особые обстоятельства - использование directinput
Если вам нужно:
1) Знайте, когда клавиша нажата и отпущена. Вы также можете не захотеть, чтобы повторяющиеся клавиши распознавались как нажатия клавиш.
2) Обработка клавиш в фоновом режиме при переключении на другую программу.
Если что-то из перечисленного верно, то использовать directinput.
Если вы просто собираете данные от пользователя, вам нужно будет использовать команду sleep, чтобы приостановить выполнение программы. Вы хотите, чтобы программа имела 0% использования процессора в диспетчере задач, если программа просто сидит в ожидании ключей от пользователя.
Используйте функцию сна, переводя программу в спящий режим до тех пор, пока вы не захотите опросить прямой ввод для клавиш.
Поэтому прямой ввод просто тратит время программирования, если вы выполняете простую обычную задачу по сбору ключей от пользователя, как вы можете видеть.