Juni 19th, 2005

Druckereinstellungen abfragen

Posted by frank in Delphi

Hin und wieder muß man einfach wissen wie die aktuellen Druckereinstellungen bzw. andere Drucherparameter lauten.
Dazu gibt es in der Win32 den Befehl “getprinter”. Unter Delphi kann man dies mit folgendem Stück Quellcode einfach abfragen:

var
  driver                                : array[0..79] of char;
  info                                  : PPrinterInfo2;
  nBytes                                : integer;
  handle                                : Thandle;
  hGlobal                               : THandle;
  defaults                              : tprinterdefaults;
  s:string;
begin
      s := 'Kyocera FS-1000'; //der Druckername
      strcopy(driver, pchar(s));
      defaults.pDataType := nil;
      defaults.pDevMode := nil;
      defaults.DesiredAccess := PRINTER_ALL_ACCESS;
      openprinter(driver, handle, @defaults);
      GetPrinter(handle, 2, nil, 0, @nBytes);
      hGlobal := GlobalAlloc(GHND, nBytes);
      info := PPrinterInfo2(GlobalLock(hGlobal));
      GetPrinter(handle, 2, info, nBytes, @nBytes);
      showmessage('Der Drucker hat gerade soviele Aufträge noch zu drucken: '+inttostr(info^.cJobs));
      if (info^.pDevMode^.dmFields and DM_PRINTQUALITY > 0) then
      begin
        //DMRES_HIGH
        showmessage('Die aktuelle Auflösung beträgt: '+inttostr(info^.pDevMode^.dmPrintQuality));
      end;
      closeprinter(handle);
      GlobalUnlock(hGlobal);
      GlobalFree(hGlobal);
end;

Dies kann natürlich an die eigenen Bedürfnisse angepasst werden. Hilfe liefert auch die WIN32 Dokumentation über den Befehl GetPrinter und dann z.B. PRINTER_INFO_2 und DEVMODE.

No Responses to ' Druckereinstellungen abfragen '

Subscribe to comments with RSS or TrackBack to ' Druckereinstellungen abfragen '.

Leave a reply

:mrgreen: :neutral: :twisted: :shock: :smile: :???: :cool: :evil: :grin: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: