Есть ли способ проверить (в консольном приложении), была ли нажата какая-либо из буквенно-цифровых клавиш az и 1-9 на клавиатуре?

0

Я знаю (GetLastInputInfo - http://msdn.microsoft.com/en-us/library/windows/desktop/ms646302(v=vs.85).aspx) - но он также реагирует на все события мыши. Но это непрактично, потому что мышь может инициировать движение от себя, любой небольшой удар может вызвать его.

Я также знаю о GetKeyState и GetAsyncKeyState, но они реагируют только на определенные ключи. Есть функция, которая может сообщить мне, что было нажато?

Также я знаю о GetKeyboardState (http://msdn.microsoft.com/en-us/library/windows/desktop/ms646299(v=vs.85).aspx), но я не знаю, как обрабатывать структуру PBYTE, это как проверить внутри него, если был сообщен какой-либо ключ. Как отобразить PBYTE на консоли?

cout << pByte << endl;

ничего не показывает.

  • 0
    Документация, к которой вы GetKeyboardState объясняет, что PBYTE массив PBYTE и как его интерпретировать.
  • 0
    Где вопрос?
Показать ещё 1 комментарий
Теги:
console
winapi

2 ответа

1

Поскольку вы пишете код Win32, в _getch нет ничего плохого. isalnum сообщит вам, является ли это буквенно-цифровым символом.

0

Попробуйте SetWindowsHookEx с параметром WH_KEYBOARD_LL. Я считаю, что ваш HOOKPROC не должен быть в DLL с этим выбором параметра.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню