Как я могу обнаружить один или комбинацию нажатий клавиш в C? - PullRequest
5 голосов
/ 17 июля 2010

Как я могу обнаружить один или комбинацию нажатий клавиш в ANSI C и / или с Win32 SDK?

Например: как я могу обнаружить нажатие клавиш CTRL + ALT + DEL?

Пожалуйста, предоставьте мне некоторый исходный код или любую веб-ссылку.

Обратите внимание, что я использую механизм опроса, а не событие.

Мне нужно сделать это в режиме консоли win32.

1 Ответ

1 голос
/ 17 июля 2010

С ANSI C это невозможно, поскольку ANSI C не определяет какой-либо метод для доступа к клавиатуре таким образом. Функция самого низкого уровня, которая принимает ввод от пользователя, является getc, которая возвращает символ после того, как он был введен в stdin и нажата ENTER.

Что касается Win32 API, это действительно можно сделать. В функции обработки сообщений (WndProc) вы должны следить за WM_CHAR сообщениями. Модификаторы помогут вам увидеть, нажаты ли клавиши CTRL и SHIFT.


P.S. просто мысль, может быть, то, что вы ищете, это инструмент, подобный Autohotkey ?

...