Ver Mensaje Individual
  #2  
Antiguo 27-10-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Reputación: 27
delphi.com.ar Va por buen camino
Te traduje un código que utilizo en otro lenguaje, a ver si te sirve:
Código Delphi [-]
unit SpoolUtils;

interface

uses
  Windows;

function GetPrinterStatus(APrinterName: PChar): DWORD;

implementation

uses
  Printers, WinSpool, SysUtils;

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
        else
          Result := MaxWord;
      finally
        FreeMem(PI2);
      end;
    end
    else
      Result := MaxWord;
  finally
    ClosePrinter(HPrinter);
  end;
end;

end.
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita