我正在尝试使用他的虚拟COM端口名称和串行端口类将USB条形码扫描器作为串行端口联系。
我试图这样做的原因是避免将扫描仪用作键盘楔形,因为即使表格被隐藏,我也需要扫描。
问题是,当我将条形码扫描器连接到USB端口,并运行“GetPortNames”功能时,我得到一个空列表。有什么建议吗?感谢
答案 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
。