1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
function GetPrinterStatus(APrinterName: PChar): DWORD;
var
HPrinter: THandle;
BytesNeeded: Cardinal;
PrinterDefaults: PRINTER_DEFAULTS;
PI2: ^PRINTER_INFO_2;
begin
with PrinterDefaults do
begin
DesiredAccess := PRINTER_ACCESS_USE;
pDatatype := nil;
pDevMode := nil;
end;
Win32Check(OpenPrinter(APrinterName, HPrinter, @PrinterDefaults));
try
if not GetPrinter(HPrinter, 2, nil, 0, @BytesNeeded) then
begin
GetMem(PI2, BytesNeeded);
try
if GetPrinter(HPrinter, 2, PI2, BytesNeeded, @BytesNeeded) then
Result := PI2^.Status
/// PI2^.cJobs <== INDIQUE LE NOMBRE DE DOCUMENTS EN COURS
else
Result := MaxWord;
finally
FreeMem(PI2);
end;
end
else
Result := MaxWord;
finally
ClosePrinter(HPrinter);
end;
end; |
Partager