Ich habe ein älteres Java-Programm, das einen speziellen Kartendrucker verarbeitet, indem es Binärdaten an den LPT1-Port sendet (es ist kein Druckertreiber beteiligt, das Java-Programm erstellt den Binärstrom).
Das Programm funktionierte ordnungsgemäß mit dem alten Computer des Clients. Das Java-Programm hat alle Bytes an den Drucker gesendet, und nach dem Senden des letzten Bytes wurde das Programm nicht blockiert. Es dauerte eine weitere Minute, bis der Kartendruck abgeschlossen war, aber der Benutzer konnte die Arbeit mit dem Programm fortsetzen.
Nachdem der Computer des Clients (aber nicht der Drucker oder das Java-Programm) geändert wurde, beendet das Programm die Aufgabe erst, wenn die Karte fertig ist. Sie wird bis zur letzten Sekunde blockiert.
Es scheint mir, dass LPT1 jetzt ein anderes Verhalten hat als zuvor. Ist es möglich, dies in Windows zu ändern? Ich habe das BIOS auf Einstellungen für parallele Ports überprüft: Der parallele Port ist auf EPP + ECP eingestellt (habe aber auch die beiden anderen Optionen ausprobiert: Bidirektional, Nur Ausgabe). Vielleicht ist eine Art Parallelport-Puffer zu klein? Wie kann ich es erhöhen?
Antworten:
Bitte überprüfen Sie die Firewall-Einstellungen und Antivirus, falls vorhanden.
quelle
Wird der Print Spooler-Dienst gestartet? Ich weiß, es ist ein langer Weg, aber genau das ist das Symptom, das Sie bekommen würden, wenn Sie nicht spulen würden.
quelle
Überprüfen Sie die Einstellungen für LPT1 im Geräte-Manager. Es sollte etwas über Spooling oder Direktdruck sein, wie mh vorschlägt.
quelle
Hier ist ein bisschen ein langer Schuss (natürlich ungetestet). Installieren Sie einen allgemeinen Druckertreiber für den Drucker auf LPT1. Dann sollten Sie in der Lage sein, die Spool-Einstellungen für den Drucker zu konfigurieren. Windows weiß nicht, dass Sie diesen bestimmten Treiber nicht verwenden, sollte aber trotzdem die Spool-Einstellungen beachten.
quelle
Wenn möglich, versuchen Sie es auch anders: Klicken Sie mit der rechten Maustaste auf das Java-Programm, wechseln Sie zur Registerkarte Kompatibilität und stellen Sie den Kompatibilitätsmodus auf Windows 98 / ME oder Windows 95 ein. Sie können auch die Modi NT4.0 und 2000 ausprobieren.
quelle
Senden Sie die Daten vom Hauptthread (awt)? Wenn ja, können Sie einen neuen Thread erstellen und ihn im Hintergrund beenden lassen, damit die Benutzeroberfläche wieder reagiert.
quelle