Informacje na temat drukowania

0

Witam,
w jaki sposób mogę przechwycić informacje takiej jak:

  • do jakiej drukarki został wysłany plik do drukowania
  • jaki plik został wydrukowany
  • ile stron miał wysłany dokument
  • na jaki port
0

dobra znalazłem na google

Function GetSpoolerJobs(sPrinterName : String) : JOB_INFO_1_ARRAY;
var
         i : Integer;
         hPrinter   : THandle;
         bResult    : Boolean;
         cbBuf      : DWORD;
         pcbNeeded  : DWORD;
         pcReturned : DWORD;
         aJobs      : Array[0..99] of JOB_INFO_1;
begin
         cbBuf := 1000;

         bResult := OpenPrinter(PChar(sPrinterName), hPrinter, Nil);
         if NOT bResult then begin
            ShowMessage('Error opening the printer');
            exit;
         end;

         bResult := EnumJobs(hPrinter,0,Length(aJobs),1,@aJobs,cbBuf,pcbNeeded,pcReturned);
         if NOT bResult then begin
            ShowMessage('Error Getting Jobs information');
            exit;
         end;
        
         ClosePrinter(hPrinter);

         for i:=0 to pcReturned-1 do begin
             if aJobs[i].pDocument <> Nil then begin
                SetLength(Result, Length(Result)+1);
                Result[Length(Result)-1] := aJobs[i];
             end;
         end;
end; 

dodatkowo bym chciał uruchomić procedurkę w momencie kiedy puszczę coś na drukarkę a nie pobierać tych informacji w timerze.

Proszę o pomoc w tych sprawach

1 użytkowników online, w tym zalogowanych: 0, gości: 1