我的问题类似于设置虚拟 Com 端口?,没有答案。
我有只能打印到 COMx 上的打印机、带有 USB 端口的打印机和带有 USB 端口但没有串行端口的计算机的软件,因此经常建议的物理串行到 USB 适配器不是解决方案。我正在寻找可以欺骗 Windows 7 将虚拟 COM 端口映射到物理 USB 端口的软件。我确信,如果我使用的软件将其位流发送到 USB 端口,打印机将正常工作。如何欺骗软件,让它认为它正在打印到 COMx,而实际上它正在打印到 USBx?
互联网搜索只会找到某些特定硬件串行转 USB 适配器的驱动程序,但这不是我要找的,因为我没有该硬件。我找到了一个 Microsoft 论坛,他们建议在设备管理器中更改 USB 端口的标签,但我们从未找到他们描述的内容;也许使用与我们不同的 USB 控制器是可能的。
答案1
有一种使用标准 Windows 命令的简单方法。Lee Harrison 的链接显示了此命令,但这里有一个简短的描述。首先使打印机可共享(从打印机属性 > 共享选项卡)。
现在,启动命令提示符并输入:
NET USE COM1: //pc_name/printer_share_name /persistent:yes
这里的pc_name
是共享PC的名称,printer_share_name
是您在设置共享时为打印机指定的共享名称。
从那时起,您发送到 COM1 的任何内容都将被重新路由到打印机。
但是有一个条件 - 无论您使用哪种方法将数据传输到打印机、硬件或软件,它都适用:
由于您的程序只知道 COM1,我假设它会将纯文本发送到打印机。许多仅 USB 的打印机不理解纯文本,并且会完全忽略它。这样做的打印机称为基于主机的打印机,其中 Windows 图形引擎将页面转换为纸上的点,而不是让打印机进行转换。它们大多是低成本打印机,尤其是喷墨打印机,但也有一些激光打印机。理解文本的打印机需要支持一种称为 PCL5 的语言。PCL6 打印机通常也支持 PCL5,但 PCL3 打印机不支持。
如果您告诉我您的打印机型号,我就可以检查它支持什么语言。
答案2
我们在公司中使用了这个解决方案。
虚拟 COM 端口 (VCP) 驱动程序使 USB 设备显示为 PC 可用的附加 COM 端口。应用软件可以像访问标准 COM 端口一样访问 USB 设备。
这里是安装指南。
答案3
这是一个非常特殊的场景,但以下指示可能适合您: http://www.decompile.com/dataflex/tips/usb_printer.htm
直接从该链接:
The solution is to assign the USB-connected printer a network name, and
then to associate that network name with an unused LPT port. The
***** program will print to the LPT port and Windows will
automatically redirect the job to the USB printer port.
但是,我不知道你的情况是否可以选择 COM 连接,因为你的 PC 一开始就没有 COM 连接。你可以购买USB/COM 适配器只是为了访问这些值,然后使用上述方向转发到您的 USB 打印机。
听起来有点黑客风格,但当你运行旧软件时,有时就会出现这种情况。无论解决方案是什么,我都不知道它是否看起来优雅!
最后一种选择是购买 USB 转串口/并口适配器和符合规格的廉价打印机。如果您在业务中使用此软件,我认为这是一笔合理的开支。
答案4
如果你需要模拟串行端口,这个软件可以完成这项工作 https://www.eltima.com/products/vspdxp/ 但我不知道您是否可以使用模拟的 COM 与您的 USB 通信...