Einzelnen Beitrag anzeigen

Exceeder

Registriert seit: 29. Mai 2006
24 Beiträge
 
#2

Re: Druckaufträge aus Warteschlange anzeigen

  Alt 21. Apr 2009, 14:45
Hi,

ja gibt es. Ich denke mit folgendem Sourcecode solltest du weiterkommen:
Delphi-Quellcode:
procedure GetPrintJobs(Jobs: TStringList);
type
  PJobs = ^TJobs;
  TJobs = array[0..0] of TJobInfo2;

var
  Needed, JobCounter: DWORD;
  i: Integer;
  Device, Driver, Port: array[0..255] of char;
  hPrinter, hDeviceMode: THandle;
  Buffer: Pointer;
  Job: PJobs;

const
  NoJobs = 100;

begin
  Jobs.Clear;
  Printer.PrinterIndex := -1;
  Printer.GetPrinter(Device, Driver, Port, hDeviceMode);

  if WinSpool.OpenPrinter(@Device, hPrinter, nil) then
  begin
    EnumJobs(hPrinter, 0, NoJobs, 2, nil, 0, Needed, JobCounter);
    GetMem(Buffer, Needed);

    try
      Job := Buffer;

      if EnumJobs(hPrinter, 0, NoJobs, 2, Buffer, Needed, Needed, JobCounter) then
        for i := 0 to JobCounter - 1 do
          Jobs.Add(Job[i].pDocument);
    finally
      FreeMem(Buffer, Needed);
    end;

    WinSpool.ClosePrinter(hPrinter);
  end;

  Jobs.Sort;
end;
Exceeder
  Mit Zitat antworten Zitat