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

标签 c++ keycode

有什么办法可以得到吗?我正在使用 INPUT 类来模拟按键,当想要按下 char 类型变量中的键时,我需要使用以下方法:

INPUT ip;
ip.type = INPUT_KEYBOARD;

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

ip.ki.wVk = toupper(foo);

...其中 foo 是 char 类型,并且是用户定义的。

这工作正常,直到用户输入一个不是常规字母的字符,这会导致注册一个完全不同的 key (这是可以理解的)。这就是为什么我想问是否有一种方法可以使我能够从变量的值中获取十六进制 key 代码?

我知道我可以制作一个大的 switch(foo) case '1'://and so on... 来用相应的键码替换不受支持的字符,但实际上,将意味着很多不必要的代码。

那么,有什么办法吗?非常感谢回答,如果没有,我会用更复杂的方式解决它。但是,由于这个问题在我身上已经发生过好几次了,所以我认为了解一下以供引用可能会很好。

最佳答案

将我的评论变成答案...

我想你想要VkKeyScanEx(...) .这会将 TCHAR 变成一个虚拟键码和一组键盘修饰符,您应该可以将它们与 SendInput(...) 一起使用。

关于c++ - 有没有办法从 C++ 中的 char 获取虚拟键码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20079395/

相关文章:

c++ - 将 apiVersion 参数设置为 0 时的 VK_ERROR_INCOMPATIBLE_DRIVER

c++ - 编译器优化掉的内存分配

javascript - Switch 语句可以与退格键配合使用,而 if 语句则不能吗?

java - Android中KeyEvent.KEYCODE_BACK的疑问

c++ - 在 C++ 中存储类型

c++ - 处理 C++ 依赖项(跨平台)

java - 使用 EventKey 在 EditText 上设置文本

jQuery 音乐数组

javascript - 将退出键绑定(bind)到实例?

c++ - 打印 Protobuf 消息时省略字段