Я знаю (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;
ничего не показывает.
Поскольку вы пишете код Win32, в _getch
нет ничего плохого. isalnum
сообщит вам, является ли это буквенно-цифровым символом.
Попробуйте SetWindowsHookEx с параметром WH_KEYBOARD_LL. Я считаю, что ваш HOOKPROC не должен быть в DLL с этим выбором параметра.
GetKeyboardState
объясняет, чтоPBYTE
массивPBYTE
и как его интерпретировать.