Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Version des eigenes Programms ermitteln (https://www.delphipraxis.net/124541-version-des-eigenes-programms-ermitteln.html)

xZise 20. Nov 2008 22:38


Version des eigenes Programms ermitteln
 
Hallo ihr,

wie kommt man an die Version des eigenes Programmes?

Es gab da was in der CL ... Aber er findet bei version* nichts und version findet er nichts passendes.

MfG
xZise

gsh 20. Nov 2008 22:44

Re: Version des eigenes Programms ermitteln
 
hier:
Delphi-Quellcode:
function GetFileVersion(Path: string): string;
var
  lpVerInfo: pointer;
  rVerValue: PVSFixedFileInfo;
  dwInfoSize: cardinal;
  dwValueSize: cardinal;
  dwDummy: cardinal;
  lpstrPath: pchar;
begin
  if Trim(Path) = EmptyStr
  then lpstrPath := pchar(ParamStr(0))
  else lpstrPath := pchar(Path);

  dwInfoSize := GetFileVersionInfoSize(lpstrPath, dwDummy);

  if dwInfoSize = 0
  then begin
    Result := 'No version specification';
    Exit;
  end;

  GetMem(lpVerInfo, dwInfoSize);
  GetFileVersionInfo(lpstrPath, 0, dwInfoSize, lpVerInfo);
  VerQueryValue(lpVerInfo, '\', pointer(rVerValue), dwValueSize);

  with rVerValue^ do
  begin
    Result := IntTostr(dwFileVersionMS shr 16);
    Result := Result + '.' + IntTostr(dwFileVersionMS and $FFFF);
    Result := Result + '.' + IntTostr(dwFileVersionLS shr 16);
    Result := Result + '.' + IntTostr(dwFileVersionLS and $FFFF);
  end;
  FreeMem(lpVerInfo, dwInfoSize);
end;
als Path einfach eigenen Dateinamen angeben

Mr_G 20. Nov 2008 22:47

Re: Version des eigenes Programms ermitteln
 
Den Thread den du gesucht hast gibt es aber auch: Versionsinformationen einer EXE- oder DLL-Datei abfragen
Google ist da momentan hilfreicher als die DP-Suche...

xZise 21. Nov 2008 18:28

Re: Version des eigenes Programms ermitteln
 
Wusste ich doch ... Nagut dann werde ich wohl demnächst mit google suchen müssen :(

MfG
xZise

taaktaak 21. Nov 2008 19:31

Re: Version des eigenes Programms ermitteln
 
Hab' da noch eine Version, die weitere Informationen ermittelt:

Delphi-Quellcode:
procedure GetFileVersionInfos(List:TStrings;ItemNo:Word=0);
const SubBlock = 'StringFileInfo\040704E4\';
      InfoNum = 10;
      InfoStr : Array[1..InfoNum] of String
               = ('CompanyName',
                  'FileDescription',
                  'FileVersion',
                  'InternalName',
                  'LegalCopyright',
                  'LegalTradeMarks',
                  'OriginalFileName',
                  'ProductName',
                  'ProductVersion',
                  'Comments');
var  n,Len,i : DWORD;
      Buf     : PChar;
      Value   : PChar;
begin
  n:=GetFileVersionInfoSize(PChar(Application.ExeName),n);

  if n=0 then List.Add('No version information found')
         else begin
    List.Clear;
    Buf:=AllocMem(n);
    Windows.GetFileVersionInfo(PChar(Application.ExeName),0,n,Buf);
    for i:=1 to InfoNum do
      if VerQueryValue(Buf,PChar(SubBlock+InfoStr[i]),Pointer(Value),Len) then
        if (ItemNo=0) or
           (ItemNo=i) then List.Add(InfoStr[i]+'='+Value);
    FreeMem(Buf,n)
    end
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz