Thema: Delphi Druckerstatus

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: Druckerstatus

  Alt 18. Apr 2007, 14:07
Du kannst eigentlich auf den Windows-Spooler vertrauen:
dieser sorgt dafür, dass Dokumente ausgedruckt werden, sobald der Drucker zum Druck bereit wird.
Dies funktioniert auch nach einem Reboot.

Du möchtest wahrscheinlich verhindern, dass ein Benutzer viele Druckjobs absetzt,
der Drucker aber nicht bereit ist.
Im Extremfall könnte so die Arbeiten von Stunden verlorengehen.

Dann wäre es doch ratsamer, nur zu Prüfen, wieviele Druckaufträge gerade im Spooler sind.
Sind mehr als 3 Druckaufträge vorhanden dann bringt dein Programm diese Meldung:
Zitat:
Es sind 4 Druckaufträge im Spooler für Drucker "HP Desk 1000".
Wollen Sie einen weiteren Auftrag hinzufügen ?
<Ja> <Nein>
Delphi-Quellcode:
var
   info :TPrinterInfo2Easy;
begin
   GetPrinterInfo2(druckername,info); // aus Code-Library; siehe Link aus früherem Posting
   if info.cJobs > 3 then
   begin
      // Meldung ausgeben
      if MessageDlg(Format('Es sind %d Druckaufträge im Spooler für Drucker "%s".'#13#10, [info.cJobs, info.PrinterName])+
         'Wollen Sie einen weiteren Auftrag hinzufügen ?', mtConfirmation, [mbOK, mbCancel], 0) = mrCancel then
         Abort;
   end;
Jetzt bleibt nur noch das Problem, den aktuell eingestellten Druckername von WinWord
zu ermitteln. Das wäre aber eine eigene Frage.
Andreas
  Mit Zitat antworten Zitat