2010-08-30 18:49:48 +0000 2010-08-30 18:49:48 +0000
18
18

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

Ich habe einige ältere Software, die nur auf Drucker druckt, die über einen LPT-Anschluss angeschlossen sind. Das Gerät, das ich verwenden muss, verfügt jedoch nicht über einen parallelen Anschluss. Außerdem ist mein Drucker ein USB-Gerät.

Wie täusche ich meinem Computer vor, dass mein USB-Drucker an den lpt-Anschluss angeschlossen ist?

Außerdem ist dies für ein Büro gedacht. Ich werde Admin-Rechte haben, wenn ich den Workaround implementiere, aber ich suche nach einer Lösung, die funktioniert, während ein “normaler” Benutzer angemeldet ist, nachdem alles eingerichtet ist.

Antworten (8)

21
21
21
2010-08-30 19:26:24 +0000

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

Freigeben Sie den USB-Drucker

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

Schließen Sie den freigegebenen Drucker als LPT1

NET USE LPT1: \[Computer-Name]\Printer /PERSISTENT:YES
``` an
5
5
5
2012-10-26 15:44:27 +0000

Die Verwendung eines USB-Parallel-Adapters macht keinen Sinn. Hier sprechen wir über die Verwendung einer sehr alten Legacy-Software auf Hardware mit reinen USB-Anschlüssen. 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 welchem USB-Port er angeschlossen ist)
  2. Ändern Sie den Anschluss des Treibers in DATEI (und machen Sie den USB-Anschluss frei)
  3. Installieren Sie einen Generic / Nur-Text-Treiber und ändern Sie den Anschluss in den gleichen logischen USB-Anschluss wie unter Punkt 1
  4. Geben Sie den Drucker Generic /Text Only frei, damit er in VBA leicht sichtbar ist
  5. Installieren Sie den Microsoft Loopback-Adapter an einer festen, nicht verwendeten IP-Adresse (sonst ist Ihr Drucker nicht sichtbar, wenn das Kabel abgezogen wird)
  6. Weisen Sie einen LPTx:-Anschluss zu, wie zuvor per Befehlszeile erklärt (dies gilt für jede SW, die einen alten LPT benötigt)

Mit wenigen Codezeilen können Sie ASCII-Codes an den Drucker senden, wie sie früher verwendet wurden.

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
2
2
2
2015-02-16 01:35:25 +0000

DOS-Programme werden in der Geschäftswelt immer noch verwendet. Ratschläge, wie sie auf einer modernen Computerplattform richtig funktionieren können, sind im Web weit verbreitet. Folgendes hat bei mir funktioniert:

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 dem Programm eine Freigabe auf zwei 32-Bit-Client-Rechnern 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, ebenfalls in der primären Domäne, platziert. Das Programm läuft gut unter Windows 8.1. Ein kleiner Kompromiss, um sicher zu sein, aber die Rechner werden auf 64-Bit-Windows 8.1 aufgerüstet, wenn das DOS-Programm, das von der Sekundärdomäne läuft, ausgemustert wird.

Das Drucken aus dem Programm heraus stellt die größte Herausforderung dar. Mit diesem Programm werden zwei verschiedene Paralleldrucker verwendet, aber das Programm druckt nur auf einen einzigen Anschluss, und es gibt keine Möglichkeit, dieses Verhalten zu ändern. Müssen Sie einen Scheck auf dem Laserdrucker ausdrucken? Er muss an den Anschluss LPT1 angeschlossen werden. Müssen Sie einen Datenauszug auf dem Nadeldrucker ausdrucken? Er muss ebenfalls an Anschluss LPT1 angeschlossen werden. Zwei Personen arbeiten täglich mit diesem Programm, also werden wir ihre Computer benutzen, einen für jeden Drucker. Installieren wir den ersten Drucker:

  • Wenn der Computer einen physischen DB-25 (parallelen) Anschluss hat, können Sie ihn im BIOS deaktivieren. Windows 8.1 wird ihn nicht unterstützen und wir brauchen ihn nicht.

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

  • Öffnen Sie jetzt 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 Dialog Einen lokalen Drucker oder Netzwerkdrucker mit manuellen Einstellungen hinzufügen und im nächsten Dialog Vorhandenen Anschluss verwenden. Wählen Sie einen virtuellen Druckeranschluß für USB, entweder USB001 oder USB002, aus der Liste und nicht die LPT-Anschlußoptionen.

  • Der erste Drucker ist ein Panasonic KX-P1191 Multi-Mode-Punktmatrixdrucker. Der Drucker ist in dem Dialogfeld, das nach einem Treiber fragt, nicht aufgeführt, und eine Aktualisierung der Liste durch Klicken auf Windows Update hilft nicht weiter. Ein Blick auf die Support-Website von Panasonic zeigt, dass der Drucker zu diesem Zeitpunkt vollständig nicht unterstützt wird, aber ein Spezialist des technischen Supports von Panasonic half dabei, die Spur zu finden, die zum Epson FX Series 1(80)-Treiber führte, der in Windows 8.1 enthalten ist. Er funktioniert perfekt.

Jetzt ist der Drucker installiert. Er befindet sich jedoch an Port USB001, und das Programm druckt nur auf Port LPT1. Die Lösung ist relativ einfach und kann direkt in die Batch-Datei integriert werden, mit der das Programm gestartet wird. Lassen wir die alte Schule hinter uns und spielen unserem Drucker einen Streich: Wir teilen ihn und drucken auf diese Weise auf LPT1. &00002 - 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 einen kurzen Freigabenamen, nur so zur Sicherheit, und stellen Sie dann sicher, dass der Benutzer des Client-Rechners im Bereich Gruppen- oder Benutzername unter der Registerkarte Sicherheit aufgeführt ist.

  • Die beiden Personen, die auf diesen Druckern drucken werden, erstellen meinen Gehaltsscheck, also habe ich ihnen die Rechte als Domänenadministrator gegeben. Das war vielleicht unnötig. Beide sind Benutzer der primären Domäne, aber nicht der sekundären, und ich wollte keine Zeit mit der Fehlersuche bei der Berechtigungsproblematik verbringen.

Ändern Sie nun die Batch-Datei und verwenden Sie den gut dokumentierten Befehl net use, um die Drucklösung zu implementieren:

@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. Das Verfahren funktionierte ebenso gut auf einem zweiten Computer für den HP LaserJet 1100-Drucker unter Verwendung des mit Windows 8.1 gelieferten Treibers “HP LaserJet 1100 (MS)”.

– HINWEISE –

Systemfehler 5:

Stellen Sie sicher, dass der Benutzer unter der Registerkarte Sicherheit aufgeführt ist. “Jeder” kann entfernt werden. Sind für den Benutzer Domain-Admin-Rechte erforderlich? Wahrscheinlich nicht, wenn alles von einer Domäne aus läuft.

Systemfehler 66:

Überprüfen Sie Ihre Syntax. Wahrscheinlich haben Sie den Namen des Computers oder des Druckers falsch geschrieben oder vielleicht den Doppelpunkt übersehen? Gemäß der Microsoft-Dokumentation ist nur ein Doppelpunkt erforderlich. Wird das Hinzufügen eines unnötigen Doppelpunkts zu lpt1[:] zum Fehlschlag führen?

All about net use https://technet.microsoft.com/en-us/library/bb490717.aspx

2
2
2
2010-08-30 20:09:20 +0000

Siehe auch WinPrint :

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

2
2
2
2014-08-27 08:13:02 +0000

Verwenden Sie das DOS-Druckprogramm, um Ihre verfügbaren Anschlüsse an die gewünschten Geräte zu manipulieren. Sie können es von dieser Lin 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 zuerst dosprint und dosprintui als Administrator aus, danach doppelklicken Sie auf das Dosprintui Tray-Icon, Sie erhalten die Liste der verfügbaren Ports, die Sie zuordnen können, dann doppelklicken Sie auf lpt1 oder in set und wählen Sie Ihren gewünschten Drucker aus, den Sie zuordnen möchten und klicken Sie auf ok. BINGO jetzt können Sie auf den LPT1-Port drucken und Ihr USB-Drucker wird das für Sie ausdrucken.

0
0
0
2017-12-06 15:24:37 +0000

Ich war in der gleichen Position mit kundenspezifischer, auf Clipper basierender Geschäftssoftware. Ich schaute mir eine parallele Emulationssoftware zum Drucken auf einem USB-Drucker an, die etwas funktionierte, aber ihre eigenen Probleme hatte. Die Überwindung der 64 Bit win10 no dos-Probleme war eine echte Herausforderung.

fand ich Harbour HMG, das, nachdem es ein paar Codezeilen geändert hatte, die Anwendungssoftware auf 32 Bit rekompilierte. Ich lasse meine Anwendungen auch Daten in temporäre Dateien schreiben, die ich mit Microsoft Access abrufe, um einige fantastisch formatierte Berichte zu erstellen. Ach, übrigens. Jetzt funktionieren die Anwendungen in 64-Bit-Fenster 10 mit erheblichen Verbesserungen bei Speicher und Geschwindigkeit. Außerdem lasse ich die Berichte an USB-Zeilendrucker oder Tintenstrahldrucker oder was auch immer ich wähle senden.

0
0
0
2010-08-30 19:03:35 +0000

Es gibt viele “parallel zu USB-Adaptern” auf dem Markt. Sie können einen für etwa 10 Dollar online erwerben, und das ist wahrscheinlich ein guter Anfang.

0
0
0
2010-08-30 19:29:20 +0000

Sie haben nicht gesagt, welche Hardware Sie verwenden, aber angenommen, es handelt sich um einen Wintel-PC, sollten Sie dafür eine generische Parallelport-Karte fast umsonst kaufen können. Abgesehen davon können Sie sie mit NET USE umleiten, wie von harrymc vorgeschlagen.