Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Programm Version Info (https://www.delphipraxis.net/125328-programm-version-info.html)

Willie1 4. Dez 2008 09:29


Programm Version Info
 
Hallo Leute,
ich benutze folgende Funktion, um die Programm Version zu ermitteln. Bei einem Testprogramm klappt das auch, aber bei einem größerem Programm liefert es "Die Daten sind unzulässig" zurück. (GetLastError) - <Versionsinfo in das Projekt übernehmen> ist angehakt. Woran kann das liegen???


Delphi-Quellcode:
  function GetFileVersion(const FileName: string): string;
  var
    VersionInfoSize, VersionInfoValueSize, Zero: DWord;
    VersionInfo, VersionInfoValue: Pointer;
  begin

    Result := '';
    VersionInfoSize := GetFileVersionInfoSize(PChar(FileName), Zero);
    Result := SysErrorMessage(GetLastError);
    if VersionInfoSize = 0 then Exit; //<<<------------------------------------------------------------------------
       
    GetMem(VersionInfo, VersionInfoSize);
    try
      if GetFileVersionInfo(PChar(FileName), 0, VersionInfoSize, VersionInfo) and
        VerQueryValue(VersionInfo, '\' { root block }, VersionInfoValue,
        VersionInfoValueSize) and (0 <> LongInt(VersionInfoValueSize)) then
      begin
        with TVSFixedFileInfo(VersionInfoValue^) do
          Result := Format('%d.%d.%d Build %d',[HiWord(dwFileVersionMS),
                                                LoWord(dwFileVersionMS),
                                                HiWord(dwFileVersionLS),
                                                LoWord(dwFileVersionLS)]);
      end;
    finally
      FreeMem(VersionInfo);
    end; {try}

  end; {GetFileVersion}
MfG Willie

gsh 4. Dez 2008 10:26

Re: Programm Version Info
 
Siehst du im Explorer wenn du rechts auf die große Datei klickst und dann auf Eigenschaften gehst das es dort einen Reiter Version gibt? Bzw. ob die Informationen dort richtig drinnen stehen

turboPASCAL 4. Dez 2008 10:41

Re: Programm Version Info
 
Wie gsh schon sagte, es wird daran liegen das die Datei keine Fileversioninformationen hat.

Willie1 4. Dez 2008 10:47

Re: Programm Version Info
 
Der Reiter bei Vista heißt Details. Da stehen tatsächlich KEINE Versionsinformationen. Meine Frage ist WARUM? In Projekt Optionen ist "Versionsinfo in das Projekt übernehmen" angehakt!!! Ich bin ratlos.

Für einen Tipp wäre ich dankbar ...

nahpets 4. Dez 2008 10:51

Re: Programm Version Info
 
Hallo,

in der .dof-Datei zum Projekt müssten die Versionsinfos stehen, die nachher in die Exe eingefügt werden. Sind die da?
Erstelle das Projekt mal vollständig neu (Shift-F9).

Willie1 4. Dez 2008 11:19

Re: Programm Version Info
 
Alles neu kompilieren hat geholfen!!! Das Ganze ist mir trotzdem ein Rätsel. Das Prg ist nicht neu, ich hatte lediglich einen Bug entfernt.
Danke ...

W.

nahpets 4. Dez 2008 11:46

Re: Programm Version Info
 
Hallo,

bin mir nicht sicher, aber die Versionsinfos werden nur beim Neuerstellen eingebunden und nicht beim einfachen Kompilieren. Wird also die Exe beim Kompilieren nach marginalen Änderungen neu erstellt, so ist sie ohne die Versionsinfos.

Willie1 4. Dez 2008 11:59

Re: Programm Version Info
 
Man lernt immer noch dazu - das Problem hatte mich ganz "verrückt" gemacht!!!
MfG

Willie1 5. Dez 2008 17:55

Re: Programm Version Info Wichtiger Nachtrag!
 
Wichtiger Nachtrag!!!

Mit ist eben aufgefallen, dass das kompillierte Programm unter Windows 98 abstürzt, wenn ich die About-Box öffnen will, die die Versionsinfos enthält. Unter W98 stürzt der ganze Explorer ab, wenn ich mit Rechtsklick Eigenschaften/Version anzeigen will. Wa zum Teufel ist da los?

MfG
Willie

turboPASCAL 5. Dez 2008 18:14

Re: Programm Version Info
 
Wenn Möglich häng bitte mal die Exe an als Zip.

Die Versionsinfo hast du per IDE -> Projekt -> Optionen etc. hinzugefügt ?
Du verwendest den obigen Code ?
Wie sieht denn der Aufruf in der Aboutbox aus ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 Uhr.
Seite 1 von 2  1 2      

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