DruckenMister WongFacebook

Informationen über den Druckertreiber

System Win9x, WinNT, Win2000, WinXP, Vista, Win7
Ab Delphi-Version Delphi 1
Letzte Änderung 28.09.2010

Diese Procedure bringt einige Informationen über den Druckertreiber ans Tageslicht, z.B. wleche Version benutzt wird, welche Dateien benötigt werden usw.. Die Units WinSpool und Printers müssen eingebunden werden.

procedure TForm1.Button1Click(Sender: TObject);
var
  hPrinter: THandle;
  PrtName: string;
  DriverInfo: PDriverInfo2;
  dwNeeded: DWord;
begin
  PrtName :=  Combobox1.Text;
  OpenPrinter( PChar( PrtName ) , hPrinter , nil );
  GetPrinterDriver(hPrinter,
                   nil,
                   2,
                   DriverInfo,
                   0,
                   dwNeeded );

  GetMem( DriverInfo, dwNeeded );
  if GetPrinterDriver(hPrinter,
                      nil,
                      2,
                      DriverInfo,
                      dwNeeded,
                      dwNeeded ) then
    begin
      // Die Treiber Version
      Memo1.Lines.Add( IntToStr( DriverInfo.cVersion ) );
      Memo1.Lines.Add( StrPas( DriverInfo.pName ) );
      Memo1.Lines.Add( StrPas( DriverInfo.pEnvironment ) );
      Memo1.Lines.Add( StrPas( DriverInfo.pDriverPath ) );
      Memo1.Lines.Add( StrPas( DriverInfo.pDataFile ) );
      Memo1.Lines.Add( StrPas( DriverInfo.pConfigFile ) );
    end
  else
    Memo1.Lines.Add('No Info needed = ' + IntToStr(dwNeeded));

    ClosePrinter( hPrinter );
    FreeMem( DriverInfo );
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Combobox1.Items.Assign( Printer.Printers );
end;