c#与usb端口通信

时间:2011-12-12 08:37:55

标签: c# usb serial-port barcode-scanner

我正在尝试使用他的虚拟COM端口名称和串行端口类将USB条形码扫描器作为串行端口联系。

我试图这样做的原因是避免将扫描仪用作键盘楔形,因为即使表格被隐藏,我也需要扫描。

问题是,当我将条形码扫描器连接到USB端口,并运行“GetPortNames”功能时,我得到一个空列表。有什么建议吗?感谢

2 个答案:

答案 0 :(得分:1)

通常,许多USB条形码扫描仪只会显示为虚拟键盘设备 - 而不是虚拟COM端口。这可以解释为什么它没有出现。

您的扫描仪是否支持某种串行仿真模式?您可能需要对其进行配置或安装不同的驱动程序以启用此功能。它是否显示为设备管理器中的串行端口? (在Ports树下查看)

暂且不说:

如果您发现'键盘模式'是唯一受支持的键盘,请查看此问题: Reading a barcode using a USB barcode scanner along with ignoring keyboard data input while scanner product id and vendor id are not known

这个问题涉及这篇文章,其中包含大量与键盘挂钩相关的良好信息并过滤掉扫描的条形码: http://nicholas.piasecki.name/blog/2009/02/distinguishing-barcode-scanners-from-the-keyboard-in-winforms/

答案 1 :(得分:0)

我无法保证它可以与您的特定设备一起使用,但我看过一次解决类似问题的代码。解决方案是在注册表中查找端口名称。

可以在开源项目ez430chronosnet中找到它的代码;一个.NET库,可以通过USB加密狗访问TI的EZ430 Chronos手表。

您需要查看在注册表中查找名称的PortName.cs file(它至少会指向正确的键)和执行实际端口的Chronos.cs file SerialPort