Hi!
Ich programmiere ein Kassensystem unter Windows9x und muß für bestimmte Kassenfunktionen den Druck-Manager vom Windows umgehen, z.B. um Escape-Sequenzen zu senden. Dafür habe ich ein Routine, die mit einer Reihe von APIs aus der WINSPOOL.DRV arbeitet.
Die Routine arbeitet etwa so:
- Aufruf mit Druckername und Druckbefehl (beides Textvariablen)
- OpenPrinter (Druckername, DruckerHandle, 0)
- StartDocPrinter (DruckerHandle, 1, StructDocInfo)
- StartPagePrinter(DruckerHandle)
- Writeprinter(DruckerHandle, DruckBefehl, Len(DruckBefehl), GeschriebeneZeichen)
- EndPagePrinter(DruckerHandle)
- EndDocPrinter(DruckerHandle)
- ClosePrinter(DruckerHandle)
An allen meinen Testrechnern funktioniert diese Routine tadellos - bei einem Kunden steigt die Routine aber beim StartDocPrinter aus (Returnwert ist 0) und die Escape-Sequenz wird nicht an den Drucker bzw die Kassenschublade gesendet. Sende ich die Escape-Sequenz direkt aus dem DOS, funktioniert es aber! Wo kann der Fehler liegen?