keycode — есть ли способ получить код виртуального ключа из char в C ++?

Есть ли способ получить это? Я использую INPUT класс для имитации нажатий клавиш и при желании нажать клавишу в переменной типа charМне нужно использовать следующий метод:

INPUT ip;
ip.type = INPUT_KEYBOARD;

//a bunch of code, and flags...

ip.ki.wVk = toupper(foo);

…где foo имеет тип charи определяется пользователем.

Это работает нормально, пока пользователь не введет символ, который не является обычной буквой, что приводит к регистрации совершенно другого ключа (что понятно). Вот почему я спрашиваю, возможно, есть метод, который позволяет мне получить шестнадцатеричный код ключа из значения переменной?

Я знаю, что я могу сделать большой switch(foo) case '1': //and so on... заменить неподдерживаемые символы на соответствующие им коды клавиш, но на самом деле это означало бы много ненужного кода.

Так есть ли способ? Ответ высоко ценится, и если его нет, я пойду и решу его более сложным способом. Однако, поскольку эта проблема уже случалась для меня несколько раз, я решил, что это было бы полезно узнать для справки.

5

Решение

Чтобы превратить мой комментарий в ответ …

Я думаю ты хочешь VkKeyScanEx(...). Это превратит TCHAR в виртуальный код клавиши и набор модификаторов клавиатуры, которые вы сможете использовать с SendInput(...)

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]