Отлавливать нажатия клавиатуры - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть консольное приложение под Windows (в Visual Studio). Нужно, чтобы при нажатие на какую-либо клавишу или сочетание клавиш, программа выполняла какаие-то действия. При этом, программа должна выполнять свои основные действия, а не крутиться в бесконечном цикле в ожидании нажатия клавиши. Подскажите пожалуйста, как это можно реализовать?

Решение задачи: «Отлавливать нажатия клавиатуры»

textual
Листинг программы
BOOL CtrlHandler(DWORD fdwCtrlType);
 
int main(int argc, char **argv)
{
    SetConsoleCtrlHandler((PHANDLER_ROUTINE)CtrlHandler, TRUE));
    
    //Код программы
}
 
BOOL CtrlHandler(DWORD fdwCtrlType) 
{
    //Действия перед завершением
    
    return FALSE;
}

Объяснение кода листинга программы

  1. Создается функция с именем CtrlHandler, которая будет обрабатывать нажатия клавиатуры.
  2. В функции main устанавливается обработчик контролов с помощью функции SetConsoleCtrlHandler.
  3. Функция main содержит код программы.
  4. В функции CtrlHandler возвращается FALSE.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5
Похожие ответы