AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Sonstiges Delphi Versionsinformationen einer EXE- oder DLL-Datei abfragen
Thema durchsuchen
Ansicht
Themen-Optionen

Versionsinformationen einer EXE- oder DLL-Datei abfragen

Ein Thema von faux · begonnen am 27. Jul 2006 · letzter Beitrag vom 4. Jan 2007
 
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Versionsinformationen einer EXE- oder DLL-Datei abfragen

  Alt 4. Jan 2007, 10:01
Von himitsu kommt folgende Version mit dem Zusatz, dass angezeigt wird, um welche Art der Version es sich handelt.

z.B.:

debug = Fehlersuche
beta = Testversion
private = Privates Build
special = Spezielles Build

Für die Datei (EXE/DLL) - meist das eigene Programm:

Delphi-Quellcode:
Function GetFileVersion: String;
  Var i, W: LongWord;
    P: Pointer;
    FI: PVSFixedFileInfo;

  Begin
    Result := 'NoVersionInfo';
    i := GetFileVersionInfoSize(PChar(ParamStr(0)), W);
    If i = 0 Then Exit;
    GetMem(P, i);
    Try
      If not GetFileVersionInfo(PChar(ParamStr(0)), W, i, P)
        or not VerQueryValue(P, '\', Pointer(FI), W) Then Exit;
      Result := IntToStr(FI^.dwFileVersionMS shr 16)
        + '.' + IntToStr(FI^.dwFileVersionMS and $FFFF)
        + '.' + IntToStr(FI^.dwFileVersionLS shr 16)
        + '.' + IntToStr(FI^.dwFileVersionLS and $FFFF);
      If FI^.dwFileFlags and VS_FF_DEBUG <> 0 Then Result := Result + ' debug';
      If FI^.dwFileFlags and VS_FF_PRERELEASE <> 0 Then Result := Result + ' beta';
      If FI^.dwFileFlags and VS_FF_PRIVATEBUILD <> 0 Then Result := Result + ' private';
      If FI^.dwFileFlags and VS_FF_SPECIALBUILD <> 0 Then Result := Result + ' special';
    Finally
      FreeMem(P);
    End;
  End;
Und wer es für andere Dateien braucht:

Delphi-Quellcode:
Function GetFileVersion(Const FileName: String): String;
  Var i, W: LongWord;
    P: Pointer;
    FI: PVSFixedFileInfo;

  Begin
    Result := 'NoVersionInfo';
    i := GetFileVersionInfoSize(PChar(FileName), W);
    If i = 0 Then Exit;
    GetMem(P, i);
    Try
      If not GetFileVersionInfo(PChar(FileName), W, i, P)
        or not VerQueryValue(P, '\', Pointer(FI), W) Then Exit;
      Result := IntToStr(FI^.dwFileVersionMS shr 16)
        + '.' + IntToStr(FI^.dwFileVersionMS and $FFFF)
        + '.' + IntToStr(FI^.dwFileVersionLS shr 16)
        + '.' + IntToStr(FI^.dwFileVersionLS and $FFFF);
      If FI^.dwFileFlags and VS_FF_DEBUG <> 0 Then Result := Result + ' debug';
      If FI^.dwFileFlags and VS_FF_PRERELEASE <> 0 Then Result := Result + ' beta';
      If FI^.dwFileFlags and VS_FF_PRIVATEBUILD <> 0 Then Result := Result + ' private';
      If FI^.dwFileFlags and VS_FF_SPECIALBUILD <> 0 Then Result := Result + ' special';
    Finally
      FreeMem(P);
    End;
  End;
PS: GetFileVersion(ParamStr(0)), oder GetFileVersion(Application.ExeName) geben das selbe wie der erste Code zurück

Die im Bild rosa markierten Felder werden genutzt
und wenn keine VersionsInfo vorhanden ist, dann kommt der erste String ('NoVersionInfo') raus.
Angehängte Grafiken
Dateityp: jpg version_186.jpg (46,3 KB, 191x aufgerufen)
  Mit Zitat antworten Zitat
 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz