AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Version des eigenes Programms ermitteln

Ein Thema von xZise · begonnen am 20. Nov 2008 · letzter Beitrag vom 21. Nov 2008
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Version des eigenes Programms ermitteln

  Alt 20. Nov 2008, 22:38
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
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#2

Re: Version des eigenes Programms ermitteln

  Alt 20. Nov 2008, 22:44
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
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Version des eigenes Programms ermitteln

  Alt 20. Nov 2008, 22:47
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...
Jan
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Version des eigenes Programms ermitteln

  Alt 21. Nov 2008, 18:28
Wusste ich doch ... Nagut dann werde ich wohl demnächst mit google suchen müssen

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#5

Re: Version des eigenes Programms ermitteln

  Alt 21. Nov 2008, 19:31
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;
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:30 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