我有一些旧版软件,只能在通过LPT端口连接的打印机上打印。但是,我需要使用的机器没有并行端口。另外,我的打印机是USB设备。
如何欺骗我的计算机,使我的USB打印机连接到lpt端口?
此外,这是用于办公室的。实施此解决方法时,我将具有管理员权限,但我正在寻找一种解决方案,该解决方案在设置完所有常规帐户后记录“常规”用户时可以使用。
我有一些旧版软件,只能在通过LPT端口连接的打印机上打印。但是,我需要使用的机器没有并行端口。另外,我的打印机是USB设备。
如何欺骗我的计算机,使我的USB打印机连接到lpt端口?
此外,这是用于办公室的。实施此解决方法时,我将具有管理员权限,但我正在寻找一种解决方案,该解决方案在设置完所有常规帐户后记录“常规”用户时可以使用。
Answers:
您可以通过将USB打印机用作连接到LPT1的虚拟“网络”打印机来欺骗Windows。
共享USB打印机
使用易于记忆的共享名,例如“打印机”。
将共享打印机连接为LPT1
NET USE LPT1: \\[Computer-Name]\Printer /PERSISTENT:YES
NET USE
”技巧,尽管不需要环回适配器。需要注意的一件事是,如果用户的帐户没有密码,则需要修改“本地安全策略”(或适当的注册表项)以使此工作有效。
net use LPT2 \\Computer-9313\Parallel /PERSISTENT:YES
我会得到,The command completed succesfully
但在硬件设备上看不到LPT2,所以我不知道它的地址。
使用USB并行适配器没有任何意义。在这里,我们谈论的是在仅USB连接的硬件上使用非常古老的旧版软件。就我而言,是ZEBRA标签打印机。
我的解决方案是。
只需几行代码,您就可以像过去一样将ASCII码发送到打印机。
现在,您可以轻松地在VBA中打印(已通过Windows 7 64位和ZM400 Zebra打印机测试)
Open "\\Kb\ZM400" For Output As #1 'Kb = computer Name; ZM400 = Shared printer name
For rows = 1 To 37 ' send the first 37 rows of ASCII codes from the worksheet "STRINGS"
Print #1, Worksheets("STRINGS").Cells(rows, 1).Value
Next
Close #1
使用DOS打印程序来操纵您所需设备的可用端口。您可以从此链接https://www.dropbox.com/s/gdx05sckmbqnast/dosprint.exe?dl=0下载 (dos打印)
https://www.dropbox.com/s/alf6hdd5fctepmo/dosprintui.exe?dl=0 (使用打印用户界面)
首先以管理员身份运行dosprint和dosprintui,然后双击dosprintui托盘图标,您可以获得要映射的可用端口列表,然后双击lpt1或in set按钮并选择要映射的所需打印机,然后单击好。BINGO现在可以打印到LPT1端口,您的USB打印机将为您打印。
DOS程序仍在商业领域中使用。Web上关于如何使它们在现代计算平台上正常工作的建议非常普遍。这对我有用。
我们需要使用的16位DOS程序驻留在即将被删除的32位Windows 2003服务器上。在此之前,使用组策略将程序的共享映射到来自主域的两台32位客户端计算机上。用于启动程序的.cmd文件的快捷方式是手动放置在客户端以及主域上的。该程序在Windows 8.1上运行良好。可以肯定地说,这是一个折衷方案,但是当从辅助域运行的DOS程序退出使用时,计算机将升级到64位Windows 8.1。
从程序进行打印是最大的挑战。此程序使用两个不同的并行打印机,但是该程序仅打印到单个端口,并且没有任何选项可以更改此行为。需要将支票打印到激光打印机吗?它需要连接到端口LPT1。是否需要将数据转储打印到点矩阵打印机?它也需要连接到端口LPT1。每天有两个人使用此程序,因此我们将使用他们的计算机,每台打印机一个。让我们安装第一台打印机:
如果计算机具有物理DB-25(并行)端口,则可以在BIOS中将其禁用。Windows 8.1将不支持它,我们也不需要它。
电缆到型号16899 USB到DB25并行打印机适配器用于将打印机连接到计算机。该适配器会自动安装,不会被识别为并行设备或LPT端口。
现在打开设备和打印机。单击添加打印机,然后选择我所需的打印机未列出。在下一个对话框中,选择“使用手动设置添加本地打印机或网络打印机”,然后在下一个对话框中,选择“使用现有端口”。从列表中而不是LPT端口选项中,为USB选择一个虚拟打印机端口,即USB001或USB002。
第一台打印机是Panasonic KX-P1191多模式点矩阵打印机。打印机未在询问驱动程序的对话框中列出,并且通过单击Windows Update来更新列表无济于事。松下支持站点的检查表明,此时打印机完全不受支持,但是松下技术支持专家帮助弄清楚了导致Windows 8.1附带的Epson FX Series 1(80)驱动程序的原因。它运作完美。
现在已安装打印机。但是它在端口USB001上,程序仅打印到端口LPT1。该解决方案相对简单,可以直接集成到用于启动程序的批处理文件中。让我们放学一些,在我们的打印机上耍个把戏:我们将共享它并以这种方式打印到LPT1。
右键单击打印机,然后选择属性。共享打印机,不要在目录中列出它,只是为了好用而创建一个简短的共享名,然后确保在“安全性”选项卡下的“组或用户名”区域中列出了客户端计算机的用户。
将要使用这些打印机进行打印的两个人创建了我的薪水,因此我给了他们Domain Admin权限。那可能是不必要的。两者都是主域中的用户,而不是辅助域中的用户,我不想花时间对权限问题进行故障排除。
现在修改批处理文件,并使用详细记录的net use命令来实现打印解决方案:
@echo off
::delete the printer
net use lpt1 /delete
::add the printer
net use lpt1 \\\COMPUTER\PRINTER /persistent:yes
::fire up the nasty ol' DOS program
<existing syntax used to start the program>
其中COMPUTER是计算机的名称,而PRINTER是打印机的共享名。使用Windows 8.1随附的“ HP LaserJet 1100(MS)”驱动程序,该过程在用于HP LaserJet 1100打印机的第二台计算机上同样有效。
系统错误5:
确保在“安全性”选项卡下列出了该用户。可以删除“所有人”。用户是否需要Domain Admin特权?如果一切都在一个域中运行,可能不会。
系统错误66:
检查您的语法。您可能拼错了计算机,打印机的名称,还是想念冒号?根据Microsoft文档,只需要一个冒号。将不必要的冒号添加到lpt1 [:]会导致失败吗?
有关净使用的所有信息:https : //technet.microsoft.com/zh-cn/library/bb490717.aspx
使用定制设计的基于Clipper的商务软件时,我处于同一职位。看了一些并行仿真软件以打印到USB打印机,该打印机虽然可以工作,但是有自己的问题。克服64位win10 no dos问题是一个真正的挑战。
我找到了Harbor HMG,在更改了几行代码后,将应用程序软件重新编译为32位。我还让我的应用程序将数据写入到临时文件中,这些文件是我使用Microsoft Access捕获的,可以发布一些很棒的格式化报告。哦,顺便说一句 现在,这些应用程序可在64位Windows 10中运行,并在内存和速度方面有了重大改进。另外,我将报告发送到USB线打印机或喷墨机或任何我选择的报告。