有没有办法从C ++中的char获取虚拟键码?

时间:2013-11-19 18:36:49

标签: c++ keycode

有没有办法得到这个?我正在使用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...来替换不相支的字符和相应的密钥代码,但实际上,这意味着会有很多不必要的代码。

那么,有什么办法吗?答案非常受欢迎,如果没有,我会以更复杂的方式解决问题。但是,既然这个问题已经发生了好几次,我觉得知道参考可能会很好。

1 个答案:

答案 0 :(得分:4)

将我的评论转变为答案......

我想你想要VkKeyScanEx(...)。这会将TCHAR转换为虚拟键码和一组键盘修饰符,您应该可以使用SendInput(...)