Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
5. Aug 2002, 20:52
Einfach kopieren und ohne nachdenken benutzen:
Code:
function GetFileVersionsString(const p_sFilepath : string) : string;
const // Das Ergebnis soll ja nett formatiert sein :)
sFixVerFormat = 'Fileversion: %d.%d.%d.%d / Productversion: %d.%d.%d.%d';
var
dwVersionSize : DWord; // Buffer für die Grösse der Versionsinfo der abgefragten Datei
dwDummy : DWord; // Dummy, Wert wird nicht benötigt
pVerBuf : Pointer; // Buffer für die Versionsdaten
pFixBuf : PVSFixedFileInfo; // Buffer für die Versionsinfo fester Länge
sReqdInfo : string; // Hier kommt rein, welcher Teil der Versionsinfo abgefragt werden soll
begin
// Annahme: Die Datei hat keine Versionsinfo
Result := Format(sFixVerFormat,[0,0,0,0,0,0,0,0]);
dwDummy := 0; // Dummy initialisieren
sReqdInfo := '\'; // Es soll die Versionsinfo fester Länge abgefragt werden
// Mal sehen, wieviel Platz die Versionsinfo der Datei braucht
dwVersionSize := GetFileVersionInfoSize(PChar(p_sFilepath),dwDummy);
if dwVersionSize > 0 then
begin // Wenn > 0, dann Versionsinfo vorhanden
try
pVerBuf := AllocMem(dwVersionSize); // Buffer initialisieren
// Gesamte Versionsinformationen auslesen
if GetFileVersionInfo(PChar(p_sFilepath),0,dwVersionSize,pVerBuf) then
begin // Werte für Versionsinfo fester Länge extrahieren
if VerQueryValue(pVerBuf,PChar(sReqdInfo),Pointer(pFixBuf),dwDummy) then
begin
// und als Ergebnis ausgeben
Result := Format(sFixVerFormat,[
(pFixBuf^.dwFileVersionMS and $FFFF0000) shr 16, // 1. Stelle HiWord, deshalb nach unten schieben
pFixBuf^.dwFileVersionMS and $0000FFFF,
(pFixBuf^.dwFileVersionLS and $FFFF0000) shr 16,
pFixBuf^.dwFileVersionLS and $0000FFFF,
(pFixBuf^.dwProductVersionMS and $FFFF0000) shr 16,
pFixBuf^.dwProductVersionMS and $0000FFFF,
(pFixBuf^.dwProductVersionLS and $FFFF0000) shr 16,
pFixBuf^.dwProductVersionLS and $0000FFFF
]);
end;
end;
finally // Resourcen wieder freigeben
FreeMem(pVerBuf,dwVersionSize);
end;
end;
end;
Michael Ein Teil meines Codes würde euch verunsichern.
|
|
Zitat
|