Autor Beitrag
LittleBen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 258
Erhaltene Danke: 4

Win 7, Mac OS
Delphi 7
BeitragVerfasst: Mo 23.11.15 21:02 
Hallo zusammen,

derzeit verweifel ich an dem Problem, den Zustand "Near Paper End" eines Bondruckers zu ermitteln. Es ist ein Epson EU-T300, welche diese Funktion unterstützt.
Als "Schnitstelle" verwende ich den TReportPrinter, der diese Abfrage aber nicht beinhaltet. Wie komme ich nun über die normale Windows-API an die Information?
Ich schaffe es nicht einmal, "Paper out" abzufange. Das wäre schon mal ein Anfang.
Kann mir hier jemand helfe? Wäre super!

Viele Grüße
Benny
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18726
Erhaltene Danke: 1628

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 24.11.15 00:52 
Diesen Sensor kannst du so einfach nicht abfragen glaube ich. Diese Information ist für Kassensysteme natürlich z.B. interessant, so dass sie auch in der Microsoft POS for .NET Schnittstelle zur Verfügung steht. Darüber könnte man also dran kommen, aber nur über .NET (ggf. mit einer DLL mit nativ exportierten Funktionen).
Ansonsten gibt es noch OPOS bzw. UPOS, auch da gibt es den Status und das gibt es auch z.B. als OCX Control für Win32 ohne .NET.

Ich weiß aber nicht, ob du auf diesen Wegen überhaupt an diese Informationen herankommst, wenn du auf anderem Wege druckst.

Wenn du einen Druck startest, kannst du aber zumindest die Druckerwarteschlange anschauen um festzustellen, ob schon kein Papier mehr da ist. Wenn dort ein Job nicht abgearbeitet werden kann, kannst du das feststellen und darauf reagieren. Das geht mit EnumJobs:
msdn.microsoft.com/d...162625(v=vs.85).aspx
Im Status steht dann JOB_STATUS_PAPEROUT.