0

所以我正在使用 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 键,我应该检查左侧的生成代码:0x2a 右侧:0x36

CTRL 和 ALT 键呢?

4

1 回答 1

0

您需要知道密钥的原始扫描码。他们的核心参考是这个Word 文档。有点难以理解,第 16 页的扫描码表是最有用的资源。

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

于 2012-12-10T19:34:05.800 回答