Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Druckaufträge aus Warteschlange anzeigen (https://www.delphipraxis.net/132217-druckauftraege-aus-warteschlange-anzeigen.html)

Andidreas 8. Apr 2009 06:59


Druckaufträge aus Warteschlange anzeigen
 
aloha zusammen,

kann man mit delphi die druckaufträge die in einer warteschlange zum drucken anstehen (oder in der warteschlange gespeichert sind) anzeigen lasssen? evtl. durch die "printers" unit?

Exceeder 21. Apr 2009 13:45

Re: Druckaufträge aus Warteschlange anzeigen
 
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

Flips 21. Apr 2009 15:35

Re: Druckaufträge aus Warteschlange anzeigen
 
Hi,
man muss, damit alles funktioniert, noch die WinSpool Unit einbinden.
Außerdem gibts ne Exception, wenns keinen Standarddrucker gibt.

Lg Flips


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 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