Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Versionsinfo auslesen ohne \VarFileInfo\Translation

  Alt 28. Jun 2009, 16:47
Moin !

s.h.a.r.k hat in diesem Beitrag ...
http://www.delphipraxis.net/internal...sfixedfileinfo
eine nette Klasse gepostet -> classTExeInformation.

Der Grundlegende Code zu der Klasse scheint übrigens (nebenbei erwähnt) von hier zu stammen:
http://www.swissdelphicenter.ch/torr...de.php?id=1047

Die funzt auch ganz prächtig bis auf 2 Kleinigkeiten...

1) So wie die Klasse ist kann man nur EXE Dateien damit abfragen. Bei DLL / SYS streikt die Klasse und das liegt wohl an dem Teil hier:
Delphi-Quellcode:
    iRet := SHGetFileInfo(PChar(FExeFilename), 0, rSHFI, SizeOf(rSHFI), SHGFI_EXETYPE);
    if iRet <> 0 then
    ...
Wenn ich den Teil weglasse, dann kann ich die Klasse auch für DLL / SYS verwenden. Frage ... Stellt das ein nennenswertes Problem dar? Oder ist das letztlich nur noch eine Zusatzüberprüfung ob die Datei wirklich eine Executable ist?

2) Und das ist die eigentlich wichtigerere Frage ... Wenn ich eine Datei habe in der kein '\VarFileInfo\Translation' Eintrag vorhanden ist, dann kann die Klasse keine Sprache ermitteln und daraus resultiert das keine Ergebnisse geliefert werden. Schaut man sich aber die Datei z.B. im Resource Tuner an, dann findet der sehrwohl Sprache als auch die Einträge wie Version, CompanyName, etc.
Wenn man den Code zum Auslesen der Infos dann hart auf die Sprache einstellt, dann kann man die auch ohne weitere lesen.
Kurzum, hat jemand eine Idee wie man die Klasse dahingehend erweitert, dass man auch ohne \VarFileInfo\Translation die Informationen aus der DLL lesen kann?

Ich hänge mal die Klasse an (ich hoffe Shark hat nix dagegen) und füge auch die DLL ein wie mir das mit dem fehlenden \VarFileInfo\Translation aufgefallen ist. Die DLL stammt vom IrfanView Projekt.
Angehängte Dateien
Dateityp: pas classtexeinformation_124.pas (12,0 KB, 9x aufgerufen)
Dateityp: dll wsq_101.dll (48,0 KB, 4x aufgerufen)
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat