Wie simuliere ich einen parallelen Drucker (LPT) mit einem USB-Drucker?

18

Ich habe eine ältere Software, die nur auf Druckern druckt, die über einen LPT-Anschluss angeschlossen sind. Die Maschine, die ich verwenden muss, hat jedoch keinen parallelen Anschluss. Außerdem ist mein Drucker ein USB-Gerät.

Wie bringe ich meinen Computer dazu zu glauben, dass mein USB-Drucker an den lpt-Port angeschlossen ist?

Weiter ist dies für ein Büro. Ich habe Administratorrechte, wenn ich die Arbeit umsetze, aber ich suche nach einer Lösung, die funktioniert, wenn ein "normaler" Benutzer angemeldet ist, nachdem alles eingerichtet wurde.

Dane O'Connor
quelle
1
Ich denke du meinst LPT Port, nicht LTP Port. LPT steht für "Line Print Terminal" und ist gleichbedeutend mit "parallel", wenn es um Druckeranschlüsse geht. Interessant, dass es einen LTP-Tag gibt. Kann das geändert werden? Oder vielleicht fehlt mir etwas.
boot13 30.08.10
@ boot13, Du hast recht.
Dane O'Connor

Antworten:

21

Sie können Windows austricksen, indem Sie den USB-Drucker als Dummy-Netzwerkdrucker verwenden, der an LPT1 angeschlossen ist.

Geben Sie den USB-Drucker frei

Verwenden Sie einen leicht zu merkenden Freigabenamen, z. B. "Drucker".

Verbinden Sie den freigegebenen Drucker als LPT1

NET USE LPT1: \\[Computer-Name]\Printer /PERSISTENT:YES
Harrymc
quelle
5
Sie müssen nicht mit dem Loopback-Adapter herumspielen. Installieren Sie den Drucker einfach wie gewohnt über die USB-Verbindung. Dann teile es. Verwenden Sie dann NET USE wie oben.
Alan B
+1 für den NET USETrick "Teilen und ", obwohl der Loopback-Adapter nicht erforderlich ist. Wenn der Benutzer kein Kennwort für sein Konto hat, müssen Sie die lokale Sicherheitsrichtlinie (oder den entsprechenden Registrierungsschlüssel) ändern, damit dies funktioniert.
afrazier
Ich habe alle Schritte geschafft, aber wenn mein PC keinen parallelen Anschluss hat, net use LPT2 \\Computer-9313\Parallel /PERSISTENT:YESerhalte ich bei der Verwendung The command completed succesfullyLPT2, kann es aber auf Hardwaregeräten nicht sehen, sodass ich die Adresse nicht kenne.
Andres
1
@Andres hast du vergessen, wie oben ein Semikolon nach LPT2 einzugeben?
Phuclv
1
Das ist ein Doppelpunkt, kein Semikolon (; vs:)
Ian Macintosh
5

Die Verwendung eines USB-Parallel-Adapters macht keinen Sinn. Hier geht es um die Verwendung einer sehr alten Legacy-Software auf Hardware mit reinen USB-Verbindungen. In meinem Fall ein ZEBRA-Etikettendrucker.

Die Lösung in meinem Fall war.

  1. Installieren Sie den USB-Drucker mit seinen Treibern (nur um herauszufinden, an welchen USB-Anschluss er angeschlossen ist)
  2. Ändern Sie den Treiberport in FILE (und geben Sie den USB-Port frei)
  3. Installieren Sie einen allgemeinen / Nur-Text-Treiber und ändern Sie den Anschluss auf den gleichen logischen USB-Anschluss wie unter Punkt 1
  4. Geben Sie den Drucker "Allgemein" / "Nur Text" frei, um die Anzeige in VBA zu vereinfachen
  5. Installieren Sie den Microsoft Loopback-Adapter unter einer festen, nicht verwendeten IP-Adresse. Andernfalls wird Ihr Drucker nicht angezeigt, wenn das Kabel abgezogen wird.
  6. Weisen Sie einen LPTx: -Port zu, wie zuvor in der Befehlszeile erläutert (dies gilt für jede SW, die eine alte LPT benötigt).

Mit wenigen Codezeilen können Sie ASCII-Codes wie bisher an den Drucker senden.

Jetzt können Sie problemlos in VBA drucken (getestet mit Windows 7 64-Bit- und ZM400 Zebra-Drucker)

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
Angelo Gabriele
quelle
2

Vielleicht schauen Sie sich WinPrint an :

Übernimmt die von einer DOS-Anwendung erstellte Standarddruckerausgabe und leitet sie an einen Windows-Standarddrucker weiter. Konvertiert Codepage, entfernt leere Seiten und unterstützt BOX DRAWINGS-Zeichen. Funktioniert auf allen Windows-Plattformen.

ƬᴇcƬᴇιʜ007
quelle
2

Verwenden Sie das DOS-Druckprogramm, um die verfügbaren Ports für die gewünschten Geräte zu bearbeiten. Sie können es von diesem Link herunterladen: https://www.dropbox.com/s/gdx05sckmbqnast/dosprint.exe?dl=0 (dos Print)

https://www.dropbox.com/s/alf6hdd5fctepmo/dosprintui.exe?dl=0 (dos Print UI)

Führen Sie zunächst dosprint und dosprintui als Administrator aus. Nach einem Doppelklick auf das Dosprintui-Tray-Symbol können Sie die Liste der verfügbaren Ports abrufen, die zugeordnet werden sollen. Doppelklicken Sie dann auf lpt1 oder auf die Schaltfläche set, und wählen Sie den gewünschten Drucker aus, der zugeordnet werden soll, und klicken Sie auf okay. BINGO jetzt können Sie über den LPT1-Anschluss drucken und Ihr USB-Drucker druckt das für Sie.

Govinda Thapa
quelle
2

DOS-Programme werden immer noch in der Geschäftswelt eingesetzt. Tipps, wie Sie sie auf einer modernen Computerplattform zum Laufen bringen, sind im Web weit verbreitet. Hier ist, was für mich gearbeitet hat.

Das 16-Bit-DOS-Programm, mit dem wir arbeiten müssen, befindet sich auf einem 32-Bit-Windows 2003-Server, der bald entfernt wird. Bis dahin wird eine Freigabe für das Programm auf zwei 32-Bit-Clientcomputern aus der primären Domäne mit Gruppenrichtlinien zugeordnet. Eine Verknüpfung zu der .cmd-Datei, die das Programm startet, wird manuell auf den Clients platziert, auch in der Primärdomäne. Das Programm läuft gut unter Windows 8.1. Ein Kompromiss, aber die Computer werden auf 64-Bit-Windows 8.1 aktualisiert, wenn das DOS-Programm, das in der sekundären Domäne ausgeführt wird, eingestellt wird.

Das Drucken aus dem Programm heraus ist die größte Herausforderung. In diesem Programm werden zwei verschiedene parallele Drucker verwendet, das Programm druckt jedoch nur über einen einzigen Anschluss, und es gibt keine Möglichkeit, dieses Verhalten zu ändern. Müssen Sie einen Scheck auf dem Laserdrucker ausdrucken? Es muss an Port LPT1 angeschlossen werden. Müssen Sie einen Speicherauszug auf dem Nadeldrucker drucken? Es muss auch an Port LPT1 angeschlossen werden. Täglich arbeiten zwei Personen mit diesem Programm, sodass wir ihre Computer verwenden, einen für jeden Drucker. Lassen Sie uns den ersten Drucker installieren:

  • Wenn der Computer über einen physischen DB-25-Anschluss (parallel) verfügt, können Sie diesen im BIOS deaktivieren. Windows 8.1 wird es nicht unterstützen und wir brauchen es nicht.

  • Ein Cables-to-Go-Parallel-Druckeradapter, Modell 16899, für USB zu DB25 wird verwendet, um den Drucker an den Computer anzuschließen. Der Adapter wird automatisch installiert und nicht als paralleles Gerät oder LPT-Port erkannt.

  • Öffnen Sie nun Geräte und Drucker. Klicken Sie auf Drucker hinzufügen und wählen Sie Der gewünschte Drucker ist nicht aufgeführt. Wählen Sie im nächsten Dialogfeld die Option Lokalen Drucker oder Netzwerkdrucker mit manuellen Einstellungen hinzufügen und im nächsten Dialogfeld die Option Vorhandenen Anschluss verwenden. Wählen Sie einen virtuellen Druckeranschluss für USB, entweder USB001 oder USB002, aus der Liste aus und nicht die LPT-Anschlussoptionen.

  • Der erste Drucker ist ein Panasonic KX-P1191 Multi-Mode-Nadeldrucker. Der Drucker wird nicht in dem Dialogfeld aufgeführt, in dem Sie nach einem Treiber gefragt werden. Wenn Sie auf Windows Update klicken, wird die Liste nicht aktualisiert. Eine Überprüfung der Support-Site von Panasonic zeigt an, dass der Drucker zu diesem Zeitpunkt vollständig nicht unterstützt wird. Ein Fachmann des technischen Supports von Panasonic hat jedoch geholfen, die Ursache für den in Windows 8.1 enthaltenen Epson FX Series 1 (80) -Treiber zu ermitteln. Das funktioniert einwandfrei.

Nun ist der Drucker installiert. Es befindet sich jedoch an Port USB001 und das Programm druckt nur an Port LPT1. Die Lösung ist relativ unkompliziert und kann direkt in die Batch-Datei integriert werden, mit der das Programm gestartet wird. Lassen Sie uns die alte Schule verlassen und unserem Drucker einen Streich spielen: Wir teilen ihn und drucken auf diese Weise auf LPT1.

  • Klicken Sie mit der rechten Maustaste auf den Drucker und wählen Sie Eigenschaften. Geben Sie den Drucker frei, listen Sie ihn nicht im Verzeichnis auf, erstellen Sie aus gutem Grund einen kurzen Freigabenamen, und stellen Sie dann sicher, dass der Benutzer des Clientcomputers im Bereich "Gruppe" oder "Benutzername" auf der Registerkarte "Sicherheit" aufgeführt ist.

  • Die beiden Personen, die auf diesen Druckern drucken, erstellen meinen Gehaltsscheck, daher habe ich ihnen Domänenadministratorrechte erteilt. Das war vielleicht unnötig. Beide sind Benutzer in der Primärdomäne, aber nicht in der Sekundärdomäne, und ich wollte keine Zeit für die Problembehandlung des Berechtigungsproblems aufwenden.

Ändern Sie nun die Batchdatei und implementieren Sie die Drucklösung mit dem gut dokumentierten Befehl 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>

Wobei COMPUTER der Name des Computers und PRINTER der Freigabename des Druckers ist. Die Prozedur funktionierte auf einem zweiten Computer für den HP LaserJet 1100-Drucker mit dem in Windows 8.1 enthaltenen Treiber "HP LaserJet 1100 (MS)" genauso gut.

-- ANMERKUNGEN --

Systemfehler 5:

Stellen Sie sicher, dass der Benutzer auf der Registerkarte Sicherheit aufgeführt ist. "Jeder" kann entfernt werden. Sind für den Benutzer Domänenadministratorrechte erforderlich? Wahrscheinlich nicht, wenn alles von einer Domain aus läuft.

Systemfehler 66:

Überprüfen Sie Ihre Syntax. Wahrscheinlich haben Sie den Namen des Computers oder des Druckers falsch geschrieben oder den Doppelpunkt übersehen? Gemäß der Microsoft-Dokumentation wird nur ein Doppelpunkt benötigt. Führt das Hinzufügen eines unnötigen Doppelpunkts zu lpt1 [:] zum Fehlschlagen?

Alles über die Netznutzung: https://technet.microsoft.com/en-us/library/bb490717.aspx

blinkdt
quelle
0

Es gibt viele "Parallel-zu-USB-Adapter" auf dem Markt. Sie können eine für etwa 10 US-Dollar online kaufen, und es ist wahrscheinlich ein guter Ort, um anzufangen.

Joe Internet
quelle
Das Problem ist nicht, dass der Drucker an den Computer angeschlossen wird - er ist angeschlossen. Das Problem besteht darin, dass der USB-Drucker so funktioniert, als wäre er an einen LTP-Port (einen virtuellen LTP-Port) angeschlossen.
Dane O'Connor
Aber er hat keinen parallelen Anschluss und einen USB-Drucker.
David soll Monica
0

Sie haben nicht angegeben, welche Hardware Sie verwenden, aber wenn es sich um einen Wintel-PC handelt, sollten Sie in der Lage sein, eine generische Parallelport-Karte für so gut wie nichts zu kaufen. Abgesehen davon können Sie es mit NET USE umleiten, wie von harrymc vorgeschlagen.

boot13
quelle
0

Ich befand mich in der gleichen Position wie ich mit maßgeschneiderter, auf Business Clipper basierender Software. Habe mir eine Parallel-Emulationssoftware angeschaut, um auf einem USB-Drucker zu drucken, der etwas funktionierte, aber eigene Probleme hatte. Die Überwindung der 64-Bit-Win10-No-Dos-Probleme war eine echte Herausforderung.

Ich fand Harbour HMG, das nach dem Ändern einiger Codezeilen die App-Software auf 32-Bit umkompilierte. Ich lasse meine Apps auch Daten in temporäre Dateien schreiben, die ich mit Microsoft Access erstellt habe, um einige großartige formatierte Berichte zu erstellen. Oh, übrigens. Jetzt funktionieren die Apps unter 64-Bit-Windows 10 mit erheblichen Verbesserungen in Bezug auf Speicher und Geschwindigkeit. Außerdem habe ich die Berichte an USB-Zeilendrucker oder Tintenstrahldrucker gesendet oder was auch immer ich wähle.

Rob S
quelle