我有一个场景,Windows 8 计算机上的一台打印机需要通过 VirtualBox 共享到同一台计算机上运行的 FreeDOS 实例。
最初,我希望有一个类似于 VMware 或 Parallels 的打印机共享功能,但我并没有真正找到一个“方便”的选项。这台打印机将经常用于在 Windows 内部打印,但这个老旧的 DOS 程序也需要能够偶尔打印。
我在想,也许最好的选择是在 Windows 中启用打印机的网络共享,然后尝试以某种方式将联网的打印机连接到 FreeDOS 实例中的虚拟并行端口。
我在 FreeDOS 实例中让 TCP/IP 网络运行良好,但现在的问题是如何抓取共享打印机端口到某个虚拟 lpt,我猜想。
我脑海中闪过的另一个想法是,我可能需要在 Windows 端获取一些软件来为 DOS 提供更通用的输入,这样就可以允许简单的 DOS 应用程序字符喷出,而不需要一些更繁重的驱动程序处理。
关于如何实现这一点有什么想法吗?
答案1
我不熟悉 FreeDOS 网络,但如果您可以对共享网络驱动器执行“网络使用”,您也应该能够执行以下操作:
Net use lpt1 \\server\printershare
但是,您的 MS-DOS 应用程序必须支持打印到网络打印机。
如果 MS-DOS 应用程序试图直接操纵 LPT 硬件芯片,则此方法行不通。如果它将 LPT1 作为文件访问,则此方法可行。
无需在 Windows 端提供驱动程序或类似的东西。它会很乐意将从 DOS 客户端收到的原始字节直接传递给打印机。(或者,您可以在 Windows 中将打印机设置为“通用/纯文本”打印机,以确保 Windows 不会触及打印作业。)
如果您的 DOS 应用程序坚持要自行控制打印机硬件,那么实现此目的的唯一方法是(据我所知)在主机系统上安装真正的并行打印机,并将该并行端口直接映射到 FreeDOS VM 上。(但同时无法从主机系统使用它!)