我一直在制作一个项目,其中一个项目就是使用键盘上按下的键。它读取每个键的ASCII码,但有些键不会发出任何信号,例如:' 。 ',' /',' ; '等等...
char i;
while(1){
for(i = 0; i <= 190; i++){
if(GetAsyncKeyState(i) == -32767)
key_pressed(i, "KEYS.TXT");
}
}
这是我监控按键的方式。
答案 0 :(得分:3)
GetAsyncKeyState()
使用virtual key codes,而非ASCII值。
其中一些代码与ASCII值一致(例如,A
两者都是0x41),但不是全部。
在这种情况下,如果您想知道是否按下了;
(或:
)键,您将使用VK_OEM_1
(或0xBA)
您可以使用VkKeyScan()
将ASCII代码转换为虚拟密钥代码。 (我还没有测试过,所以不能告诉你它是否真的有效)