Если вы используете Windows:
Вы можете использовать GetKeyState или GetAsyncKeyState, но это не даст вам события keydown / keyup.Он только скажет вам, какие ключи в данный момент недоступны.
Так что, если вам нужно получить события keydown / keyup, вы можете установить ловушку.Окно консоли имеет дескриптор окна, который принадлежит коду в Windows, и насос сообщений, также принадлежащий коду в Windows.
Вы можете получить дескриптор окна окна консоли, используя GetConsoleWindowT, тогда установите хук WH_CALLWNDPROCиспользуя SetWindowsHookEx для прослушивания сообщений, отправляемых в окно консоли.
Вместо этого вы можете использовать хук WH_MSGFILTER.Я не знаю, работает ли это для консольных окон, но оно будет генерировать меньше сообщений, которые будут игнорироваться, если оно работает.