我有一个条形码扫描仪用作 HID 设备。每次扫描条码时,它都会直接进入 Windows 键盘,例如,如果我打开记事本,我可以看到在那里输入的条码。
据我所知,以编程方式可以从您的 HID 设备中读取 HID 数据。
但是如果用户已经在一个带有文本编辑控件的表单上会发生什么呢?扫描的代码将进入文本框。
您可以阻止传入的文本并进行仅后台处理吗?
你能解释一下这个理论吗?
我有一个条形码扫描仪用作 HID 设备。每次扫描条码时,它都会直接进入 Windows 键盘,例如,如果我打开记事本,我可以看到在那里输入的条码。
据我所知,以编程方式可以从您的 HID 设备中读取 HID 数据。
但是如果用户已经在一个带有文本编辑控件的表单上会发生什么呢?扫描的代码将进入文本框。
您可以阻止传入的文本并进行仅后台处理吗?
你能解释一下这个理论吗?
您可以将扫描仪设置为使用 USB-HID(POS) 设置。您的扫描仪设备的条形码设置数据表应该有它。我使用这个项目来测试我的扫描仪。http://www.codeproject.com/Articles/18099/A-USB-HID-Component-for-C
看看您的条码扫描器是否可以模拟串行端口,只需将数据直接从串行端口读取到您的应用程序中。
这比全局键盘挂钩更清洁、更便宜。当我不久前研究这个时,我发现大多数 USB 条形码扫描仪都可以模拟串行端口,用大多数编程语言读取串行端口数据很容易。我碰巧用Java做我的,我实际上发布了一个例子来回答这个问题。
当然,只需在控件处理按键之前捕获按键并抑制事件的正常处理。例如,在 VB.NET 中,您可能会覆盖OnKeyPress
表单中的方法并将其设置KeyPreview
为true
。