Когда вы удерживаете клавишу в Windows, она нажимает ее один раз, затем происходит небольшая задержка, составляющая около 0,3 секунды, и только после этой задержки она начинает непрерывно нажимать ее.Примерно так: х (задержка 0,3 секунды) хххххххх.
Если я использую kbhit (), чтобы определить, нажата ли кнопка, она не обнаружит кнопку в эти 0,3 секунды задержки и, следовательно, не запустит нужный код в это время.
Как я могу это исправить?(Установка минимальной задержки (0,25 с) в элементах управления Windows мне не подходит.)
Я уже пробовал все возможные комбинации kbhit () и getch ().
while(TRUE){
if (kbhit()) {
button = getch();
} else {
button = 'x';
}
switch (button) {
case 'a':
ToDo();
break;
}
}
Когда я нажимаю a в моем примере, он должен непрерывно, без перерыва на 0.3 секунды после первого раза, запускать ToDo ().Но это не так.