Diese Funktion hab ich im Internet gefunden. Sie ist also nicht von mir.
Mit dieser Funktion kann man die Versionsnummer eines beliebigen Programms ermitteln. Die Version wird als Strings in der "a.b.c.d" Form zurückgegeben:
Funktion:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| function GetFileVersion(const FileName: String): String; var VersionInfoSize, VersionInfoValueSize, Zero: DWord; VersionInfo, VersionInfoValue: Pointer; begin if not FileExists(FileName) then begin Result := '-1'; Exit; end;
Result := ''; VersionInfoSize := GetFileVersionInfoSize(PChar(FileName), Zero); if VersionInfoSize = 0 then Exit; GetMem(VersionInfo, VersionInfoSize); try if GetFileVersionInfo(PChar(FileName), 0, VersionInfoSize, VersionInfo) and VerQueryValue(VersionInfo, '\' , VersionInfoValue, VersionInfoValueSize) and (0 <> LongInt(VersionInfoValueSize)) then begin with TVSFixedFileInfo(VersionInfoValue^) do begin Result := IntToStr(HiWord(dwFileVersionMS)); Result := Result + '.' + IntToStr(LoWord(dwFileVersionMS)); Result := Result + '.' + IntToStr(HiWord(dwFileVersionLS)); Result := Result + '.' + IntToStr(LoWord(dwFileVersionLS)); end; end; finally FreeMem(VersionInfo); end; end; |
Beispiele:
Um die Version des eigenen Programms in der Titelleiste des Fensters anzuzeigen:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.FormCreate(Sender: TObject); begin Caption := GetFileVersion( ParamStr(0) ); end; |
Um die Version eines fremden Programms (z.B. Windows Rechner) anzuzeigen:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage( GetFileVersion('c:\windows\calc.exe') ); end; |
Um die Versionsnummer ins Projekt zu übernehmen muß im Delphi-Editor im Menü "Projekt > Optionen > Versionsinfo" die Checkbox "Versionsinfo ins Projekt übernehmen" angewählt werden. Die Angaben haben dann follgende Bedeutung:
Hauptversion - Nebenversion - Ausgabe - Compilierung