0

我目前无法正确检索标准键盘上的某些键(特别是 F 键、箭头键等)。我正在循环使用GetAsyncKeyState()每个整数的所有 256 个 ASCII 字符,以查看它是否被按下,如果是,则将其存储为 char 以在以后的SendMessage()函数中使用。

这样我就可以允许用户使用 XInput 将特定键映射到 Xbox 360 控制器按钮/模拟项,然后在触发该按钮/模拟项时将该键发送到最顶部的窗口。

我知道问题在于从GetAsyncKeyState()函数识别的虚拟键代码进行十六进制/十进制转换,例如,当我按下F4(hex 73, dec 115) 时,char 被分配给 ASCII 中相同的“s”十六进制/十进制值。

Unicode 是前进的方向吗?如果是这样,我将如何实现它来检索SendMessage()函数的正确值?

下面是循环GetAsyncKeyState()

while (mKey == NULL)
{
    system("cls");
    cout << "Press Key" << endl;
    for (int i = 0; i < 256; i++)
    {
        if (GetAsyncKeyState((i) & SHRT_MAX))
        {
            mKey = i;
        }
    }
}

我知道system("cls")这是不好的做法,但这个控制台应用程序只是一个临时解决方案。

您可以提供的任何帮助将不胜感激:)

4

0 回答 0