У меня есть небольшое WIN32 C-приложение, в котором я работаю со структурой KBDLLHOOKSTRUCT
.Эта структура содержит VK-код для нажатой клавиши.
Я пытаюсь преобразовать его в ASCII-символ.Для этого я использую функцию MapVirtualKey
, которая хорошо работает.
Единственная проблема заключается в том, что один VK-код может оставаться для нескольких символов.Пример:
На моей клавиатуре (швейцарско-немецкий) есть ключ-символ . .Если я нажму Shift + . , тогда он создаст :
.ВК-код такой же.Это не проблема, и я также могу проверить, нажата ли Shift или Caps Lock .
Моя единственная проблема: Как я могу получить символ ':«?Мне нужна функция, подобная этой:
GetKeyChar(vkCode, shift)
Мне нужна эта функция, чтобы получить «нормальное» и «смещенное» значение клавиатуры.Конечно, я мог бы жестко закодировать это, но мне не нравится делать это таким образом.