【发布时间】:2012-11-19 02:55:44
【问题描述】:
我正在用 C++ 编写 Windows DirectX 11 软件,我希望接收来自常规键盘和 10 键键盘的输入。我希望次要用户能够从 10 键键盘进行输入,而不会中断主要用户对全键盘的使用。例如,如果主要用户在文本框中输入内容,我希望次要用户能够将 10 键数据发送到软件单独处理,这样就不会影响文本框输入。
我目前正在为鼠标和键盘使用 DirectInput。但如果有人知道通过 Windows API 的解决方案,我也会考虑。
当我在 DirectInput 中创建键盘设备时,我当前使用的是 GUID_SysKeyboard 值,它将两个键盘合二为一,这样我的软件就无法识别键盘输入的来源。是否可以使用 EnumDevices 来识别两个键盘并创建单独的 DirectInput 设备?我想会是这样,但我不确定如何从提供给 EnumDevices 回调的 DIDEVICEINSTANCE 结构中识别每个设备。我想让它尽可能通用,以便它可以与不同组合和型号/品牌的键盘一起使用。
提前感谢您的任何帮助或建议!
(注意:我在GameDev.net上发布了同样的问题)
【问题讨论】:
-
有人对此有想法吗?我希望没有回复是因为我在星期五下午晚些时候发布了这个问题:)
-
也许可以查看 Raw input This is an example 类似的东西,但使用条形码扫描仪。最初回答here@Tim,这完全是题外话,但我有没有机会看到你如何实现 FW1FontWrapper [这里](stackoverflow.com/questions/5708860/…
标签: c++ windows keyboard directinput