我的問題類似於設定虛擬 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
是共用電腦的名稱,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 連接,因為您的電腦一開始就沒有任何連接。您也許可以購買USB/COM 轉接器只是為了存取這些值,然後使用上述說明轉發到您的 USB 印表機。
聽起來有點駭客,但當你運行舊軟體時,有時就會出現這樣的情況。無論什麼解決方案,我不知道它會顯得優雅!
最後一件事就是購買一個 USB 轉串行/並行適配器和一台符合規格的廉價印表機。如果您在商業中使用該軟體,我認為這是一筆很容易合理的費用。
答案4
如果您需要模擬串行端口,該軟體可以實現這種工作 https://www.eltima.com/products/vspdxp/ 但我不知道你是否可以用模擬的 COM 與你的 USB 通訊...