gpt4 book ai didi

delphi - 读取并识别多个USB键盘

转载 作者:行者123 更新时间:2023-12-02 04:27:30 24 4
gpt4 key购买 nike

我负责本地相机俱乐部的技术工作,该俱乐部是英国马尔文的一家非营利慈善机构。我们有一个以数据库为中心的竞赛管理系统,是我在 Delphi 6 中自制的,现在我们希望为其添加一个评分系统。这需要将 5 个廉价的标准 USB 数字键盘连接到 PC(使用 USB 集线器),并能够在 5 名评委输入时以编程方式读取每个键盘上的击键。当然,他们会以完全并行、异步的方式敲击按键,因此我需要识别哪个法官敲击了哪个键,以便汇总他们单独输入的分数(即可能每次击键多次)。

据我所知,Windows 吸引了键盘设备的注意力并照顾它们生成的字符串,只需将字符喷射到正常的键盘队列中(我已经通过实验证实了这一点!)。这不能满足我的需求,因为我确实必须收集 5 组(可能是多个)按键,并将接收到的字符分配为 5 个单独的变量,以便评分系统随后进行操作。

任何人都可以 (a) 建议在 Delphi 中执行此操作的方法并 (b) 提供一些可能需要的代码指南吗?虽然我非常了解 Delphi,但我没有访问 USB 设备或捕获其数据的经验。

任何帮助或指导将不胜感激!

最佳答案

Windows 提供了 Raw Input API ,可以用于此目的。在提供的链接的引用中,列出的优点之一如下:

  • An application can distinguish the source of the input even if it is from the same type of device. For example, two mouse devices.

虽然这比常规 Windows 输入消息需要更多工作,但它比编写 USB 设备驱动程序要容易得多。

它的一个使用示例(虽然不是用 Delphi 编写的)演示了它的功能,并提供了一些有关使用它的信息:

Using Raw Input from C# to handle multiple keyboards

关于delphi - 读取并识别多个USB键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51481015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com