Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.545 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Spezielle Druckereigenschaften auslesen

  Alt 9. Mär 2008, 13:00
Thx, auf PRINTER_INFO_5 bin ich mittlerweile auch schon gestoßen.

[edit] Falls es wen interessiert, ich habe das jetzt so:
Delphi-Quellcode:
uses Winspool;

function PrintsToFile(const Printername: string;
                      out ErrMsg : string): Boolean;
var Needed : DWORD;
    PInfo : PPrinterInfo5;
    hGlobal,
    hPrinter: THandle;
    Def : TPrinterDefaults;
begin
  Result := false;
  ErrMsg := Format('Drucker "%s" druckt nicht in Datei.',[Printername]);
  ZeroMemory(@Def, SizeOf(Def));
  Def.DesiredAccess := PRINTER_READ;
  if OpenPrinter(PChar(Printername), hPrinter, @Def) then
    try
      GetPrinter(hPrinter, 5, nil, 0, @Needed);
      hGlobal := GlobalAlloc(GHND, Needed);
      try
        PInfo := PPrinterInfo5(GlobalLock(hGlobal));
        GetPrinter(hPrinter, 5, PInfo, Needed, @Needed);
        Result := Pos('FILE',AnsiUpperCase(PInfo^.pPortName)) > 0;
        if Result then
          ErrMsg := '';
      finally
        GlobalUnlock(hGlobal);
        GlobalFree(hGlobal);
      end;
    finally
      ClosePrinter(hPrinter);
    end;
end;
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat