windows-xp - 带有 USB 打印机的 DOS 旧应用程序

标签 windows-xp dos legacy printing dbase

我的不幸任务是在 DBIII+/Clipper '87 中开发的两个遗留应用程序上进行(最少的)维护工作。

我可以完全访问源代码和最小的工具链,以便在需要时重新编译应用程序,但由于主要用户的各种(主要是心理)原因,我不允许从头开始重新实现它。

无论如何,虽然应用程序在 XP 下运行良好,但硬件支持正在成为一件苦差事。用户需要更换出现故障的打印机(具有并行接口(interface)的旧影响 HP)和托管应用程序的 486 (!) 桌面。

现在的主要问题是找到一台可以在 XP 下使用的打印机,可能通过 USB(华硕 EEE Box 是完美的,它不支持并行端口)并使其对 DOS 应用程序“可见”。

到目前为止,我找到了一种解决方法:

http://geekswithblogs.net/dtotzke/articles/26204.aspx

加上一些实用程序:

http://www.dosprn.com/
http://www.dos2usb.com/index.htm
http://www.printfil.com/english.htm

这些实用程序似乎更好,因为它们为旧的转义序列提供了某种过滤器(例如 ESC/P 用于 Epson 或 HP 方言),使打印机对打印机透明。
至少他们是这么说的。

所以问题是:有没有人在 XP 下将旧的 DOS 程序与现代打印机接口(interface)的经验?有什么注意事项吗?您是否使用了列出的实用程序之一(或另一个我还没有找到的实用程序),如果是,您会推荐哪一个?

最佳答案

我们通常会完全按照您的链接之一进行操作。也就是说,在 Windows 下将打印机安装在它想要自行安装的任何端口上(即:USB 等)。

接下来,共享打印机(假设工作站名为 COMPUTER1,您的共享为 HPPRINTER)。

接下来创建一个批处理文件来启动应用程序,它应该看起来像这样:

net use lpt1 /d
net use lpt1 \\COMPUTER1\HPPRINTER
<yourapp.exe>

在您的应用程序中,将输出设置为 LPT1。

还有其他更复杂的解决方案,但这是迄今为止最简单的。我们仍然有一个多年前构建的 DOS 应用程序,我们仍在积极营销和销售。这就是我们处理打印的方式。它工作得很好。您还可以获得现在使用 Windows 对打印作业进行排队的额外好处,这样您就可以暂停打印机队列等。打印机甚至可以关闭或缺纸,并且作业仍在 Windows 假脱机程序中排队。

警告:这假设新打印机将支持输出。如果它是“较旧”的 HP LaserJet,那么它可能是 PCL5,只需找到支持 PCL5 的设备即可。

在过滤方面,不知道你为什么需要这个。只要输出是 PCL 或 Postscript 或其他标准,那么您仍然应该能够找到支持该打印描述语言的打印机。如果您有疑虑,只需添加有关当前设备的评论,我可以在我们每天处理此问题时提供有关兼容性的想法。

关于windows-xp - 带有 USB 打印机的 DOS 旧应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1587793/

相关文章:

c - Phar Lap 汇编程序 : I Need information/documentation and binaries if possible

c - C 语言的简单控制台图形

legacy - 将旧的遗留 Web 应用程序转移到新的应用程序时的最佳实践是什么(特别是关于断开的链接问题)?

c - 有什么方法可以使用 getaddrinfo() 和 freeaddrinfo() 并且仍然是与旧版 Windows 兼容的程序?

c++ - VC++ 2010 - 尝试 DLL 时未声明的标识符,少量代码

linux - 如何让一个shell脚本每天自动运行?

java - Seam 和 Mock 有什么区别?

batch-file - CMD: 当 CALL 引用批处理文件的名称时 %~d0 失败

.net - 安装后 MSI 文件复制到哪里?