Przechwytywanie danych z LPT (PCL)

0

Witam,
to mój debiutancki post więc witam wszystkich forumowiczów ;)
Mam u klienta stary DOSowski program księgowy napisany w Delphi i jest ogromny problem z drukowaniem czegokolwiek - jeśli chce się wydrukować to albo trzeba czekać parę minut albo wyjść z programu i wtedy się drukuje. Problemy zaczęły się z przesiadki z Win98 na XP. Próbowałem już dosłownie wszystkiego i nic, dlatego stwierdziłem, że najlepiej będzie jak napiszę coś co będzie przechwytywało dane wysyłane z tego programu na port LPT1 i wysyłało je do drukarki np. poprzez USB normalnie przez windowsowy interfejs.
Program wysyła polecenia do drukarki w języku PCL. Zawsze pisałem aplikacje komunikujące się jedynie za pośrednictwem RS-232, ale w temacie portów równoległych nie mam za dużej wiedzy. Przydałaby mi się nawet podpowiedź jakie biblioteki pomogłyby mi w rozwiązaniu problemu ;) Planuję korzystać ze środowiska Qt.
Jest jakiś łatwy sposób na asynchroniczne nasłuchiwanie LPT i przechwytywanie danych?

Z góry dzięki za pomoc ;)

0

DOSowski program księgowy napisany w Delphi

Jeśli Delphi to nie DOS-owski.
Jeśli DOS-owski to nie Delphi.
Ustal to lepiej dokładniej, bo to ważne.

I powiedz jaka to drukarka.

0

Zakładam, że zmapowałeś port przy pomocy "net use" i nie rozwiązało to problemów. Program nie ma możliwości drukowania do pliku?

0

Program napisany w Delphi. Napisałem że DOS-owski, bo gościu napisał odpowiednik okienkowy, ale jest tak strasznie nieporęczny, że biuro nie chce z niego korzystać, a sam człowiek jest tak nie do pogadania, że nie wiem czy przepisał cały od nowa czy zrobił po prostu okienka. Pod okienkowym drukowanie wychodzi OK. Nie powinno być różnicy jakie to drukarki, najważniejsze że wszystko leci w PCL, ale jak coś to pomoże to: HP LaserJet 1015 i HP LaserJet P2035.
Tak, mapowałem przy pomocy net use i nic nie daje. Niestety nie ma drukowania do pliku, a jedynie czego się dowiedziałem, to to że program ręcznie wywołuje przerwanie i w pętli wysyła znaki do drukarki. Z przechwyceniem przerwania raczej nie byłoby problemu, ale co z wysyłaniem na port?

0

nie wiesz czy ta zwłoka w drukowaniu jest spowodowana na etapie komunikacji ze sterownikiem czy już po przetworzeniu informacji przez sterownik?

0

Właśnie nie wiem i nawet nie wiem jak to sprawdzić. Na windowsie 98 na tej samej wesji sterownika drukuje wszystko super, na xp już nie a różnych sterowników przerobiłem tysiące. Dlatego jedynie co to mi pozostaje napisać coś takiego co będzie przechwytywało a później ładnie przez QPrinter albo bezpośrednio przez WINAPI wysyłało na drukarkę. Tylko jak mam się za to zabrać?

0

Witam,
po długim poszukiwaniu znalazłem rozwiązanie: LPT_timeout trzeba ustawić na możliwie najmniejszą wartość czyli 1. Więcej info: http://technet.microsoft.com/en-us/library/cc959496.aspx

1 użytkowników online, w tym zalogowanych: 0, gości: 1