AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Anzahl gedruckter Seiten lässt sich nicht ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Anzahl gedruckter Seiten lässt sich nicht ermitteln

Ein Thema von neuronet · begonnen am 16. Nov 2005 · letzter Beitrag vom 17. Nov 2005
 
Benutzerbild von neuronet
neuronet

Registriert seit: 16. Aug 2005
Ort: Berlin
104 Beiträge
 
Delphi 2010 Architect
 
#1

Anzahl gedruckter Seiten lässt sich nicht ermitteln

  Alt 16. Nov 2005, 11:49
Hi!

Habe folgendes Problem:

Bei uns im Netzwerk soll festgehalten werden, welcher Arbeitsplatz mit welchem User wie viele Seiten ausgedruckt hat.

Funktioniert mit dem folgenden Code im Prinzip ja auch ganz gut:

Delphi-Quellcode:
procedure TForm3.FormShow(Sender: TObject);
type
  TJobs = array[0..1000] of JOB_INFO_1;
  PJobs = ^TJobs;
var
  hPrinter: THandle;
  bytesNeeded, numJobs, i: Cardinal;
  pJ: PJobs;

begin
  hPrinter := GetCurrentPrinterHandle; // eigene Funktion
  try
    EnumJobs(hPrinter, 0, 1000, 1, nil, 0, bytesNeeded,
      numJobs);
    pJ := AllocMem(bytesNeeded);
    if not EnumJobs(hPrinter, 0, 1000, 1, pJ, bytesNeeded,
      bytesNeeded, numJobs) then
      RaiseLastWin32Error;
    SG.RowCount:=numJobs+1;
    if numJobs = 0 then
      //
    else
      for i := 0 to Pred(numJobs) do begin
        if ((pJ^[i].Status=16) or (pJ^[i].Status=128)) then begin
          SG.Cells[0,i+1]:=inttostr(pJ^[i].JobId);
          SG.Cells[1,i+1]:=pJ^[i].pMachineName;
          SG.Cells[2,i+1]:=pJ^[i].pUserName;
          SG.Cells[3,i+1]:=inttostr(pJ^[i].TotalPages);
          SG.Cells[4,i+1]:=pJ^[i].pDocument;
        end;
      end;
  finally
    ClosePrinter(hPrinter);
  end;
end;
Nun kommt es aber ab und an vor, dass ich folgende Ergebnisse bekomme:

pJ^[i].pDocument = 'druckerdatendatei von remotesystem'
pJ^[i].TotalPages = 0

obwohl ich haargenau weiss, dass ein Dokument mit z.B. 5 Seiten gedruckt wurde.
Auch in der Druckerwarteschlange wird das gleiche Angezeigt (0 Seiten).

Wie bekommt ich nun heraus, wie viele Seiten letztendlich gedruckt wurden???

Danke schon mal im Voraus.
Andreas
--- Der Wert der Leistung liegt im Geleisteten --- Albert Einstein

Mein erstes Baby: Apple I - Der Rechner ist genauso alt wie ich... Und steht noch immer im Keller...
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz