Я хотел бы добавить в мою программу определенное поведение, которое связывает функцию с клавишей ввода с цифровой клавиатуры, если она присутствует, или связывает альтернативную клавишу, если ее нет.
По данным Microsoft:
Код сканирования - это значение, которое аппаратное обеспечение клавиатуры генерирует при
пользователь нажимает клавишу. Это зависящее от устройства значение, которое идентифицирует
клавиша нажата, в отличие от символа, представленного клавишей.
Приложение обычно игнорирует коды сканирования. Вместо этого он использует
независимые от устройства коды виртуальных клавиш для интерпретации сообщений нажатия клавиш.
(источник)
Я знаю, что на моей клавиатуре это 0x9C (156), но это гарантировано для всех клавиатур.
Я не могу использовать MapVirtualKey()
с VK_RETURN
и MAPVK_VK_TO_VSC
, поскольку это всегда возвращает код сканирования для первичной клавиши возврата в центре клавиатуры.
Как я могу получить эту информацию без какого-либо вмешательства со стороны пользователя?
Мой язык - C / C ++, и только для Win32.