Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Wie kann ich mir die Druckertreiberversion anzeigen lassen?

Mitglied: 7591
Hallo zusammen,

ich habe fogendes Problem:

Wie kann ich mir die Druckertreiberversionen der installierten Drucker anzeigen lassen?
Also ich meine die REV.-Nummer, (z.B. 1.1 o.ä.)!

Kann mir da hier jemand helfen?

Vielen Dank

Content-Key: 6305

Url: https://administrator.de/contentid/6305

Ausgedruckt am: 24.06.2021 um 15:06 Uhr

5 Kommentare
Mitglied: linkit
Weg Nr1:

Du baust dir selber deine Anzeige:

*

uses
Printers, Winspool;


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


procedure TForm1.ComboBox1Change(Sender: TObject);
var
hPrinter: THandle;
PrtName: string;
DriverInfo: PDriverInfo2;
dwNeeded: DWORD;
begin
Memo1.Clear;
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
Add infos to Memo1
Memo1.Lines.Add('Version: ' + 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;

{2.}
{}
{ Another Code by P. Below }

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, WinSpool;

type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
private
{ Private-Deklarationen }
pEnumDriversData: PDriverInfo2;

public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ListBox1Click(Sender: TObject);
var
pTemp: PDriverInfo2;
begin
with Sender as TListbox do
begin
if ItemIndex >= 0 then
begin
memo1.Clear;
pTemp := PDriverInfo2(Items.Objects[ItemIndex]);
with memo1.Lines, pTemp^ do
begin
Add(Format('cVersion:'#9#9'%d', [cVersion]));
Add(Format('pName:'#9#9'%s', [pName]));
Add(Format('pEnvironment:'#9'%s', [pEnvironment]));
Add(Format('pDriverPath:'#9'%s', [pDriverPath]));
Add(Format('pDataFile:'#9#9'%s', [pDataFile]));
Add(Format('pConfigFile:'#9'%s', [pConfigFile]));
end;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i, bytesNeeded: DWORD;
pTemp: PDriverInfo2;
NumDrivers: DWORD;
begin
listbox1.Clear;
if Assigned(pEnumDriversData) then
FreeMem(pEnumDriversData);
get number of installed drivers
Numdrivers := 0;
bytesNeeded := 0;
EnumPrinterDrivers(nil, nil, 2, nil, 0, bytesNeeded, NumDrivers);
if bytesNeeded = 0 then
begin
ShowMessage('No printer drivers installed!');
Exit;
end;

allocate memory for the driver data
GetMem(pEnumDriversData, bytesNeeded);
fetch driver data
if EnumPrinterDrivers(nil, nil, 2, pEnumDriversData, bytesNeeded,
bytesNeeded, NumDrivers) then
begin
add drivers to listbox1
pTemp := pEnumDriversData;
for i := 1 to Numdrivers do
begin
listbox1.Items.AddObject(pTemp^.pName, TObject(pTemp));
Inc(pTemp);
Note: Inc increments a pointer by the size of its base type!
end;
listbox1.ItemIndex := 0;
listbox1Click(listbox1);
end
else
RaiseLastWin32Error;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
if Assigned(pEnumDriversData) then
FreeMem(pEnumDriversData);
end;

end.





Weg 2:

du suchst nach den Druckertreiberdateien und läßt dir die Dateiversionsinformationen anzeigen.


*
Mitglied: 7591
Oh Gott!
Ja super, aber was mach ich damit?
Also tut mir echt leid, aber ich versteh bloß Bahnhof1 *g*
Mitglied: Mitchell
du machst ne batch datei draus :-) face-smile

Mfg

Mitchell
Mitglied: 7591
Na dann ist ja alles klar!
Heiß diskutierte Beiträge
tip
Powershell Link-Leitfaden für AnfängercolinardoVor 1 TagTippBatch & Shell12 Kommentare

Da ja immer mal wieder die Frage nach Powershell-Lektüre von Neulingen in der Materie hier aufkommt und ich die Liste nicht in jedem Beitrag posten ...

question
Betriebsauflösung - VorgehensonderbarerVor 20 StundenFrageOff Topic8 Kommentare

Hallo Zusammen, ich hoffe ich bin hier jetzt im richtigen Bereich. Ich habe eine Betriebsauflösung vor mir. Hier wäre mir wichtig wie ihr hier so ...

info
Kostenloses E-Book: OPNsense - Mehr als eine FirewallFrankVor 1 TagInformationFirewall12 Kommentare

In Zusammenarbeit mit unserem Partner IT-Administrator und Thomas Krenn kommt diesen Monat ein kostenloses E-Book zum Thema "OPNsense - Mehr als eine Firewall". Erhaltet detaillierte ...

question
Windows 10 Speicher erweitern gelöst server007Vor 1 TagFrageWindows 106 Kommentare

Servus, Ich habe Windows 10 auf VMware laufen und habe am Anfang(beim erstellen) zu wenig Speicher hinzugefügt nun habe ich in den VM Settings den ...

question
10 gb Netzwerk deutlich zu langsamWern2000Vor 5 StundenFrageWindows Netzwerk15 Kommentare

Hallo, hab hier einen Server umgebaut und ihm ein Supermicro X10dri-t verpasst. Soweit so gut. Allerdings ist das 10 gb/sek Netzwerk deutlich zu langsamm. laut ...

question
Datei(en) aus tibx-Datei extrahieren gelöst achkleinVor 21 StundenFrageBackup11 Kommentare

Hallo, ich muss ein System wegen Überspannung neu aufsetzen. Leider ist auch die Festplatte betroffen, an die Dateien komme ich nicht mehr ran. Es gibt ...

question
WireShark alternative für die Festplattelord-iconVor 1 TagFrageMicrosoft5 Kommentare

Hi, kennt einer ein Programm, der mit Detailierte Informationen liefern kann, was/wer/wo auf der Festplatte macht. Also Programmseitig. Wer ließt welche Datei was wurde angefragt ...

question
Windows 10 - auf Live USB Stick?christian295Vor 1 TagFrageWindows Installation9 Kommentare

Guten Morgen Zusammen, ich bin auf einen Mac umgestiegen und habe nun die Herausforderung, dass ich ein Programm benötige, dass ausschließlich auf Windows läuft. Nachdem ...