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;
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;