我正在用 C++ 编写 Windows DirectX 11 软件,我希望接收来自常规键盘和 10 键键盘的输入。我希望次要用户能够从 10 键键盘进行输入,而不会中断主要用户对全键盘的使用。例如,如果主要用户正在输入文本框,我希望次要用户能够将 10 键数据发送到软件单独处理,这样它就不会影响文本框输入。
我目前正在为鼠标和键盘使用 DirectInput。但如果有人知道通过 Windows API 的解决方案,我也会考虑这一点。
当我在 DirectInput 中创建键盘设备时,我当前使用的是 GUID_SysKeyboard 值,它将两个键盘合二为一,因此我的软件无法识别键盘输入的来源。是否可以使用 EnumDevices 来识别两个键盘并创建单独的 DirectInput 设备?我想会是这样,但我不确定如何从提供给 EnumDevices 回调的 DIDEVICEINSTANCE 结构中识别每个设备。我想让它尽可能通用,以便它可以与不同组合和型号/品牌的键盘一起使用。
提前感谢您的任何帮助或建议!
(注意:我在GameDev.net上发布了同样的问题)