alarik
Goto Top

Emulieren des LPT1 mit Umleitung zum USB port

Dos Programm greift auf LPT1 port zu welcher jedoch am PC selber nicht mehr eingebaut ist.

Hallo zusammen,
Bei uns in der Firma gibt es ein altes Dos Programm das auf einigen PCs laufen muss.
Dieses Programm hat die eigenart nur auf den LPT1 Port zu drucken.
Bisher gab es damit keine Probleme, unsere Netzdrucker konnten wir per "netuse"
auf dem LPT1 verlinken wen wir den LPT1 auf den jeweiligen PCs deaktivierten (sonst würder der Netuse befehl nicht greifen).
Jetzt sind diese PCs jedoch erneuert worden und besitzen keinen LPT1 port mehr,
somit kann netuse den LPT1 nicht mehr verlinken und so keine verbindung mit dem
Drucker herstellen.
Ich hatte mir deshalb überlegt den LPT1 port zu emulieren um so per Netuse wieder verbindung
zu den Druckern herzustellen.
weiss jemand wie man den LPT1 emulieren kann?

Content-Key: 47060

Url: https://administrator.de/contentid/47060

Printed on: April 24, 2024 at 15:04 o'clock

Member: LordAsriel
LordAsriel Dec 19, 2006 at 11:03:52 (UTC)
Goto Top
google.de hilft der erste eintrag, den ich gefunden hab als ich nach LTP1 PORT emulieren gesucht habe, gefunden habe war ein treffer.

http://www.mcseboard.de/windows-forum-allgemein-28/usb-lpt-port-emulier ...
Member: Alarik
Alarik Dec 19, 2006 at 11:32:54 (UTC)
Goto Top
Klar hab ich vorher schon gegoogelt, und ich hab auch den beitrag gelsen,
ich habe viele Beiträge gesehen bei denen es um das dort beschriebene Problem geht.
aber mein Problem hat eben den zusatz das ich keinen LPT1 Port an dem PCs habe.
per net use kann ich den also nicht verlinken.
Member: AndreasHoster
AndreasHoster Dec 19, 2006 at 14:30:10 (UTC)
Goto Top
Seid wann braucht man einen LPT1 Anschluß, um ihn zu emulieren?
Was bekommst Du denn für eine Fehlermeldung wenn Du es versuchst? Und falls Du es noch nicht versucht hast, versuchs einfach.
Member: Alarik
Alarik Dec 19, 2006 at 15:01:04 (UTC)
Goto Top
Also dort wird der LPT1 nicht emuliert, sondern nur umgeleitet.
So wie ich es vorher auch gemaht habe.
nur jetzt da es keinen LPT1 mehr gibt an den PCs
kann ich ihn auch nicht mehr umleiten.

Versucht hab ich es natürlich als erstes.
aber alles was er macht ist den Befehlt starten und
dann das Programm aufzuhängen.
Member: jogi08
jogi08 Mar 14, 2008 at 12:00:41 (UTC)
Goto Top
Ganz einfach:

Mach eine Netzwerkfreigabe auf deinem Drucker,
dann mach eine DosBox auf und gib
"net use lpt1: \\127.0.0.1\generict"
ein, fertig!
Member: 4eversr
4eversr Dec 29, 2008 at 20:01:58 (UTC)
Goto Top
Hallo zusammen,

bin über Google auf diesen Thread gestoßen und wollte mich noch kurz mit einer weiteren Lösung melden. Ich stand vor demselben Problem: Ein Bekannter von mir nutzt für seine Warenhaltung noch ein ganz uraltes DOS-Programm (ca.15 Jahre altes Prog) was nur auf LPT1 ausdrucken kann. Dieses Programm musste ich nun von Windows 95 auf Windows XP migrieren. - Klappte mit ein paar Tricks auch einwandfrei, bis ich an die Hürde mit dem neuen USB-Drucker kam. - Der weiter oben aufgeführte Trick mit dem "net use"-Befehl funktioniert nur bei USB-Druckern die die Druckersprache PCL6 unterstützen. - Das sind hauptsächlich Drucker der Marke HP oder teurere Modelle... - Die meisten modernen, günstigen Drucker sind aber "billige" GDI-Drucker die dem Treiber die Druckberechnungen überlassen, ohne PCL-Funktionen. Wenn man diese GDI Drucker per "net use" anbindet passiert weiterhin gar nichts...

Die Lösung für dieses Problem ist das Programm DOSPRN (http://dosprn.com/). Dieses Programm bindet vollautomatisch sämtliche USB-Drucker, auch welche die nur GDI können an und wandelt die Drucke von DOS (PCL) zu GDI. Damit kann man auch komplett auf das Getrickse mit "net use" verzichten... Und plötzlich kommen auch aus meinem Canon PIXMA und meinem Samsung Laserdrucker entsprechende DOS-Ausdrucke...
Member: Beatzler
Beatzler Feb 14, 2009 at 18:38:39 (UTC)
Goto Top
Hey,

ich kram den Thread hier nochmal raus da ich aktuell auch ein kleines Problem mit der parallelen Schnittstelle unter Windows XP auf einem Notebook habe ....

Das Notebook hat noch eine parallele Schnittstelle (LPT 1) nun benötige ich aber für eine größere Relaiskarte eine weitere LPT (2) Schnitstelle !

Ich habe mir nun Testweise mal ein USB --> Parallel Adapter ausgeliehen und ihn angeschlossen jedoch bindet windows XP diesen als USB Druckeranschlussadapter ein und nicht als richtigen LPT face-sad

Kennt jemand nen Trick dies zu umgehen ? Ich habs bisher nicht geschafft ....

Oder kennt jemand nen Adapter der sich als "richtigen" LPT Port verkauft?

Ist es bei den USB Auf seriell Adaptern genauso oder würden diese sich "richtig" als COM Port verkaufen ?

Vielen Dank für Infos !

Mfg Beatzler
Member: SiMi1306
SiMi1306 Jun 10, 2012 updated at 18:12:57 (UTC)
Goto Top
Hallo zusammen,

ich habe die Lösung zur Emulation von LPT1, auch wenn viele hier das jahrealte Problem überhaupt nicht erfasst hatten. In Win 7 64 bit auf Laptop. Also Gerätemanager öffnen, Rechtsklick auf den ersten Eintrag mit dem Computernamen, Legacyhardware hinzufügen, weiter, manuell aus einer Liste wählen, weiter, Anschlüsse (com & lpt), weiter, Druckeranschluß, weiter, weiter, fertigstellen. Dann auf den neuen Eintrag mit dem gelben Ausrufezeichen rechts klicken, über Eigenschaften auf Anschlußeinstellungen und nach lpt1 ändern, bei Ressourcen auf manuell und Basiskonfiguration 0001, nun EA-Bereich und IRQ manuell vergeben. Bei mir klappte es mit Doppelbelegungen ohne Rücksicht auf angebliche Konflikte. Nach einem Neustart war ein frei erfundener LPT1-Port sauber und korrekt und ohne gelbes Ausrufezeichen im Gerätemanager eingetragen und konnte mit net use ... auf das Netzwerk umgleitet werden.

Das löst zwar nicht das Problem, dass der Drucker kein GDI-Gerät sein darf (Beitrag 4eversr) aber bei mir lief auch DOSPRN nicht, weil dieses Tool zeilenweise ausliest und meine Steuerzeichen in mehr als 10.000 alten Texten immer mit ausgedruckt hat, da bei mir die Umsetzung von Steuerzeichen in die Drucker-Steuercodes über eine eigene Datei läuft ("Druckertreiber"), welche beim Ausdruck die Steuerzeichen durch die Steuercodes dieser Datei ersetzt.

Also ist und bleibt für mich die Freigabe des Netzwerkdruckers am eigenen Rechner die Lösung mit net use lpt1 \\meine-IP\Freigabename /persistent:yes. Noch was: eine echte lpt1 am Rechner geht nur über PCI-Karte und am Laptop nur über PCMCIA-parallel, also nicht per USB-parallel. Auch die neuen großen Kyocera-SW-Drucker haben selbst heute noch immer einen Parallel-Anschluß.

Mit diesem Weg läßt sich auch ein zusätzlicher lpt-Port erstellen, was vielleicht auch das Problem von Beatzler löst.

Viel Spaß!
Member: MarkFa
MarkFa Jul 07, 2013 at 23:56:22 (UTC)
Goto Top
Hallo,
ich habe das gleiche Prob wie der OP, nur funktionieren die auch hier vorgestellten Lösungen nicht.
Situation: Ein relativ neuer PC ohne serielle und parallele Schnittstelle, nur USB, und der einzige Slot ist schon zwingend anderweitig belegt. Das BS ist Win 7 Ultimate. An eine der USB-Schnittstellen ist ein USB-zu-Parallel-Kabel/Adapter angeschlossen und an diesem ein HP LJ 1100. Aus Windows heraus läßt sich auf diesen auch problemlos (abgesehen daß es recht lange dauert, bis Acrobat ein Dokument rausgewürgt hat) drucken. Der HP LJ 1100 ist unter dem Namen druckdos auch freigegeben. Zusätzlich ist "druckerpool" aktiviert und neben dem USB-Port auch der LPT1 angehakt.
Leider muß ein altes DOS-Programm benutzt werden. Dies druckt fest auf LPT1. Mit dem früheren PC - auf dem lief Win98 (was ich beibehalten hätte, wenn es für den modernen PC Win98-Treiber geben würde) - lief das Programm prima in der DOS-Box, war der HP LJ 1100 an LPT1 angeschlossen und es ließ sich prima drauf drucken.
Das DOS-Programm läuft zwar auch jetzt in dem emulierten DOS, aber das Drucken geht natürlich ins Leere. Deswegen habe ich die hier und anderswo (z.B. http://www.base4u.de/board58-wissen-und-allgemeinbildung/board74-tutori ..) vorgeschlagene Lösung ausprobiert:
In der mit Admin-Rechten gestarteten cmd habe ich mit
net use lpt1: \\<ip-nr des pc>\druckdos
LPT1 auf den freigebenen HP LJ 1100 umgeleitet. Der Befehl wird ausgeführt und mit "o.k." quittiert und nach "net use" wird die Umleitung auch entsprechend gelistet. Nur tut sich nach dem Start des DOS-Programms und Druckbefehl nichts.
Darauf hin habe ich, wie in diesem Fred weiter oben von SiMi1306 beschrieben, den LPT1-Port im Gerätemanager installiert. Das funktionierte auch genauso wie hier beschrieben. Auch die LPT1-Umleitung ließ sich einrichten (dank des Starts von CMD mit Admin-Rechten) etc. Nur es druckt nicht.
Dann habe ich versuchsweise diesen installierten Pseudo-LPT1-Port im Gerätemanager deaktiviert. Leider auch ohne Erfolg. Auch Tests mit dem PC-Namen anstelle seiner IP-Nr. blieben erfolglos.
Und jetzt bin ich mit meinem Latein am Ende und bitte um Hilfe und Rat.
mfg, Mark

P.S.Das auch erwähnte Programm DOSPrn ist leider keine Lösung. Denn diese Programme reichen ja nicht einfach die DOS-Druckdaten nach draußen sondern konvertieren sie in Windows-Druckdaten (mit Windows-Fonts etc.) und drucken sie dann ganz normal als Windows-(Grafik)Druck. Da hier aber letzten Endes, wenn das mit dem HP funktioniert, auch ein Nadeldrucker angesteuert werden muß, müssen die DOS-Druckdaten (ASCII-Zeichen und Esc-Sequenzen) wie sie vom DOS-Programm kommen an den Drucker ausgegeben werden. Also genau das, was angeblich mit der "net use"-Umleitung erreicht wird/werden sollen.
Member: SiMi1306
SiMi1306 Jul 08, 2013 at 12:16:32 (UTC)
Goto Top
Hallo MarkFa, wenn ich Dein Problem richtig verstehe, ist Dein Drucker über USB angeschlossen. Das war auch das Anliegen von diesem Thread. Mein Lösungsweg betrifft aber nur Netzwerkdrucker, also Drucker, die über LAN oder WLAN angeschlossen sind. Das hatte ich offenbar nicht deutlich genug gesagt.Somit habe ich das Problem der Emulation von LPT1 nur zum Teil gelöst, nämlich nur für Netzwerkdrucker.

Die Befehle in meinem dritten Absatz leiten also den lpt1: auf das Netzwerk um und haben mit einer Umleitung des lpt1: auf USB nichts zu tun.Allerdings ist es Dir ja schon gelungen, mit den Tipps aus meinem Absatz 1 einen lpt1: zu emulieren. Nun fehlt nur noch der kleine Schritt, diesen lpt1: umzuleiten auf Deinen USB-Anschluss.

Jetzt fass doch einfach frischen Mut und probiere "mit Deinem Latein", wie Du den bereits emulierten lpt1: jetzt noch auf USB umgeleitet bekommst. Ich habe leider keine Zeit, das jetzt für Dich auszutesten. Guck Dir noch mal ganz oben an, was Alarik zur Eröffnung dieses Threads geschrieben hat. Der hatte offenbar schon so eine Umleitung hergestellt, konnte aber den fehlenden lpt1:-Port nicht emulieren. Vielleicht kannst Du aus seinen Hinweisen Deine Lösung ableiten.

Wenn Du die Lösung hast, dann teile es bitte mit. Viel Erfolg. SiMi
Member: MarkFa
MarkFa Jul 08, 2013 updated at 13:19:01 (UTC)
Goto Top
@ Simi:
Ich bin nicht sicher, daß ich Dich richtig verstanden habe. In Deinen altern posting ist doch nicht die Rede davon, daß Du von anderen PC auf diesen Netwerkdrucker zugreifst. Vielleicht könntest Du Deine Konstellation etwas genauer beschreiben, dann erkenne ich vielleicht, warum mir Deine Beschreibung nicht helfen kann.

Deine Beschreibung im 3.Absatz
net use lpt1 \\meine-IP\Freigabename
ist genau der gleiche Befehl, der weiter oben und eigentlich "überall", wo sich mit der Problematik des Druckens eines DOS-Programms auf LPT1, obwohl nur ein USB-Drucker angeschlossen werden kann und ist, verwendet wird: Der USB-Drucker wird zunächst freigegeben, wird dadurch zum Netzwerkdrucker, und der LPT-Port wird dann mit dem net-use-Befehl auf diese Freigabe und damit auf den USB-Port (und Drucker) umgeleitet bzw. soll es werden (Google mal nach "lpt usb net use - die Zahl der Fundstellen ist Legion). Unter diesem Freigabenamen wird der Drucker zum Netzwerkdrucker, kann von jedem PC aus unter diesem Freigabenamen angesprochen werden und ist nur dadurch und so einer Umleitung durch net use zugänglich.
Bei
http://support.microsoft.com/kb/314499/de
ist das Prinzip ja so beschrieben, wenn auch unmittelbar nur um mit DOS-Programmen "via LPT" auf ("echte") Netzwerkdrucker zu drucken, die an einem anderen PC angeschlossen (und freigegeben) sind. Aber was unterscheidet insofern den an demselben PC angeschlossenen und freigebenen Netzwerkdrucker von "fremden" Netzwerkdruckern? Doch wohl nichts, und deswegen funktioniert das ganze auch so häufig, wie man bei den meisten der Diskussionen auch lesen kann. Und von der erforderlichen Emulation einer LPT-Schnittstelle ist anderweitig auch nichts zu lesen. Das scheint laut MS auch nicht (grundsätzlich) erforderlich zu sein:
http://support.microsoft.com/kb/313644/DE
"Ein Benutzer, bei dem es sich nicht um einen Administrator handelt, möchte mithilfe des Kommandos net use einem Netzwerkdrucker einen LPT-Anschluss neu zuordnen (z. B. net use lpt1: \\Druckerserver\Druckfreigabe). Wurde der betreffende LPT-Anschluss bereits einem lokalen Parallelanschluss zugeordnet, so lässt sich der LPT-Anschluss nicht neu zuordnen. Ist der LPT-Anschluss keinem lokalen Parallelanschluss zugeordnet, kann der Benutzer dem LPT-Anschluss einen Netzwerkdrucker zuordnen"
Dies bedeutet doch wohl: Die Zuweisung mittels "net use" erfordert weder einen pyhisch vorhandenen noch einen nur "emulierten" LPT-Port; ist er aber bereits vorhanden, kann die Zuordnung nur mit Administratorrechten erfolgen.
Möglicherweise liegt das Problem an Windows 7, denn diese Dokus zur Umleitung betreffenden ja zunächst nur WinXP? Andererseits beziehen sich zahlreiche dieser Diskussionen auch auf Win7, und angeblich klappt es ... (hier http://www.syspredl.at/back2003faq/Topic660.html ist es- allerdings nicht speziell bezogen auf die DOS-Programm-Problematim - auch für Win 7 beschrieben).
Member: SiMi1306
SiMi1306 Jul 08, 2013 at 18:53:26 (UTC)
Goto Top
Hallo MarkFa, Alarik hat bei der Eröffnung des Thread geschrieben, dass er den LPT1 auf dem jeweiligen PC deaktiviert, weil sonst bei ihm der Netuse-Befehl nicht greift. Das Vorgehen bei USB und bei LAN ist damit nicht zu 100% das gleiche.

Ich habe ein kleines Netzwerk. Zwei Drucker sind mit dem Netz verbunden, (d.h. sie stecken genauso in einem Switch oder in der Fritzbox wie die PC und die Laptops). Auf jedem Computer ist die Software ("der Drucker") als Netzwerkdrucker installiert und so sind die Drucker über "Geräte und Drucker" ganz normal zu finden. Auf einem der PC wurde mit einer PCI-Karte eine parallele Schnittstelle nachgerüstet, auf den Laptops wurde wie oben beschrieben eine parallele Schnittstelle als lpt1: emuliert (= durch Windows als Software nachgebildet), weil keine echte parallele Schnittstelle vorhanden ist genau wie bei Deinem relativ neuen PC.

Zum Drucken aus einem DOS-Programm auf diesen Netzwerkdruckern ist so vorzugehen wie in meinem alten Beitrag vom 10.06.2012 beschrieben. Insbesondere muss auf dem PC, auf dem das DOS-Programm läuft, der Netzwerkdrucker zuerst freigegeben werden, obwohl er gar nicht am PC angeschlossen ist! Danach erst kann der DOS-Ausdruck mit dem netuse-Befehl umgeleitet werden. Das funktioniert bei mir sowohl an dem nachgerüsteten Parallelport am PC als auch an dem emulierten Parallelport am Laptop.

Wie gesagt, ich habe keine Erfahrung mit USB-Umleitungen, Du musst das selber austesten. Aber Alarik hat den echten Parallelport deaktiviert, damit der Druck über USB funktioniert. Somit unterscheidet sich sein "net-use" Vorgehen über USB von meinem über LAN. Alarik hatte wohl keinen Parallelport an seinem Drucker, doch Dein LJ 1100 hat doch nur einen Parallelport und gar keinen USB-Port, deshalb ist ja auch der Adapter dazwischen.

Für ein Deaktivieren spricht allerdings auch meine folgende Erfahrung unter Win 7 Ultimate 64-BIT: An dem PC mit dem nachgerüsteten PCI-Parallelport ist ein Kyocera-Drucker direkt angeschlossen; diese Drucker haben ja teilweise heute noch eine echte Parallel-Schnittstelle.

Der Druck funktionierte problemlos, bis vor ein paar Jahren ein Microsoft-Update kam. Seither funktioniert er nicht mehr problemlos. Erst wenn ich das DOS-Programm schließe kommt der Ausdruck. Oder wenn ich in meinem DOS-Programm einen "print close"- Befehl manuell vor jedem Ausdruck setze. Oder, was für mich am einfachsten ist, wenn ich nach dem Hochfahren des Computers im Gerätemanager die lpt1:-Schnittstelle deaktiviere und nach ein paar Momenten wieder aktiviere. Erst nach diesem "Aufwach-Trick" funktioniert der Ausdruck aus dem DOS-Programm ordnungsgemäß.

Ich vermute, dass Du mit mit derartigen Deaktivierungen und Aktivierungen experimentieren musst und mit deren jeweiligem Zeitpunkt. Allerdings hast Du neben all diesen Problemen einen vermutlich sehr, sehr alten HP LJ 1100 (Handbuch aus 1998). Den hast Du an einen relativ neuen PC über einen USB-Zu-Parallel-Kabeladapter angeschlossen, also eigentlich gar keinen richtigen USB-Drucker. Wenn Du diesen Drucker in Deiner Konstellation zum Laufen bekommst, dann Respekt! Ich kann es mir fast nicht vorstellen, dass es klappt und habe es selber mit so einem Adapter auch schon vergeblich versucht. Du wirst vermutlich einen neuen Drucker benötigen. Beim Kauf musst Du zwingend !!!!! darauf achten, dass es kein GDI-Drucker (reiner Windows-Drucker) sein darf (siehe Beitrag von 4eversr weiter oben) oder Du musst Dir mit DOSPRN helfen. Außerdem muss er natürlich mindestens einen richtigen USB-Anschluss haben und, wenn Du mehrere Computer hast, sollte er wenn möglich auch einen LAN-Anschluss haben.
Member: MarkFa
MarkFa Jul 09, 2013 updated at 11:49:22 (UTC)
Goto Top
Unter Win7 als solches funktioniert der HPLJ1100 mit dem USB-Parallel-Kabel prima. D.h. Win7 erkennt und behandelt ihn als "normalen" USB-Drucker. Sowohl so als auch, wenn er an einem anderen PC des Netzwerks (natürlich freigegeben) hängt, kann er auch von anderen PC aus benutzt werden. Insofern liegt das Problem also weder am Drucker noch am USB-Parallel-Kabel.
Nach einigem Suchen bin ich auf
http://www.columbia.edu/~em36/wpdos/usbprint.html
gestoßen. Der Autor beschreibt dort u.a. das, was man auch auf anderen Seiten lesen kann, daß nämlich der redirect-Befehl mit "net use lpt1 ..." mit Vista und Win7 nicht funktioniere. Für Win7 beschreibt er zwei andere Lösungen - eine mit DOSPrint, eine mit PrintFile (und ggfs. Prn2File). Die DOSPrint-Lösung funktioniert bei mir auch nicht - es passiert einfach nichts, wie beim "net use", egal ob es einen LPT1 im System gibt, ob aktiv oder deaktiviert oder mit welchen Daten. Die Umgehungslösung mit PrintFile funktioniert dagegen, aber da erfolgt auch kein wie auch immer gearteter Zugriff auf LPT1 sondern PrintFile schickt lediglich Dateien wie sind sind an den USB-Port. Die Umsetzung des auf LPT1 gedruckten Drucks in eine Datei nimmt Prn2File innerhalb des DOS-Fensters vor, da meine DOS-Software nicht in Dateien drucken kann.
Offensichtlich liegt es daran, daß egal was ich mit dem LPT1-Port mache dies nicht über das DOS-Fenster hinaus wirkt.
Würde mich mal interessieren, ob andere _wirklich_ unter Win7 mit dem "net use"-Befehl (oder DOSPrint) Erfolg haben. Bei
http://downloadsquad.switched.com/2009/08/24/stupid-windows-trick-print ...
heißt es, daß dieser Umleitung nicht immer funktioniere. Auch zu erkennen bei
http://answers.microsoft.com/en-us/windows/forum/windows_vista-hardware ....
Warum nur?
Member: holli.zimmi
holli.zimmi Apr 10, 2017 updated at 11:31:26 (UTC)
Goto Top
Hi,

wie ist der Stand jetzt?
Schon eine Lösung gefunden?

Gruß

Holli
Member: MarkFa
MarkFa Apr 12, 2017 at 13:44:35 (UTC)
Goto Top
Ich? Nein. Problem leider ungelöst.