Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
Delphi 7 Enterprise
|
Re: Druckjob aus dem Spooler löschen
18. Okt 2006, 11:36
Wieso Wrapper? Aufzählen:
Delphi-Quellcode:
procedure EnumerateSpoolJobs(PrinterName : String; JobList : TStrings);
var
aJobs : Array[0..99] of JOB_INFO_1;
cbBuf : DWORD;
pcbNeeded : DWORD;
pcReturned : DWORD;
hPrinter : THandle;
i : integer;
begin
OpenPrinter(PChar(PrinterName) ,hPrinter, Nil);
cBBuf := 1000;
EnumJobs(hPrinter, 0, 1000, 1, @aJobs, cbBuf, pcbNeeded, pcReturned);
for i := 0 to pcReturned -1 do
begin
JobList.AddObject(Format('%d - %s %s %s %d' ,
[aJobs[i].JobId,
strpas(aJobs[i].pDocument),
strpas(aJobs[i].pStatus),
strpas(aJobs[i].pUserName),
aJobs[i].TotalPages]), @aJobs[i]);
end;
ClosePrinter(hPrinter);
end;
Und Löschen:
Delphi-Quellcode:
procedure DeletePrintJob(PrinterName : string; const JobId : Cardinal);
var
hPrinter : THandle;
begin
OpenPrinter(PChar(PrinterName) ,hPrinter, Nil);
SetJob(hPrinter, JobId, 0, 0, JOB_CONTROL_CANCEL); <<<<< Ich hoffe, für diese Zeile wird nicht noch ein "Wrapper" benötigt
ClosePrinter(hPrinter);
end;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
|
|
Zitat
|