RAWKEYBOARD标志,检查哪些标志打开,也是SHIFT,CTRL和ALT

时间:2012-12-10 18:33:49

标签: c++ windows raw-input

所以我正在使用RAWINPUT,我正在试图弄清楚如何检查:

data.keyboard.Flags

要查看正在显示的标志,我希望能够检查按键和按键以及左右键等内容。

你需要做这样的事情:

if(data.keyboard.Flags == (RI_KEY_MAKE|RI_KEY_E0))

if(data.keyboard.Flags == (RI_KEY_BREAK|RI_KEY_E0)) 

我知道SHIFT键我应该检查makecode 留下:0x2a 正确的是:0x36

CTRL和ALT键怎么样

1 个答案:

答案 0 :(得分:0)

您需要知道密钥的原始扫描代码。它们的核心参考是Word document。有点难以解决,第16页的扫描码表是最有用的资源。

请注意您必须小心E0标志。它用于在以后的键盘设计中添加的键。最初的IBM PC键盘总是有两个移位键,因此它们使用不带E0的专用扫描码发送。但是后来添加了Right-Ctrl和Right-Alt,它们的扫描码分别是E0 1D和E0 38,左边是1D,38是没有E0标志。