Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Versionsinfo auslesen? (https://www.delphipraxis.net/111803-versionsinfo-auslesen.html)

EWeiss 18. Mai 2017 06:14

AW: Versionsinfo auslesen?
 
Zitat:

PWideChar und nicht PChar
PChar wir doch vom Compiler automatisch nach PWideChar gecastet oder?

sollte eigentlich kein Problem sein.

gruss

DeddyH 18. Mai 2017 08:37

AW: Versionsinfo auslesen?
 
GetFileVersionInfoA -> PAnsiChar
GetFileVersionInfoW -> PWideChar
GetFileVersionInfo -> PChar

Welcher Typ der richtige ist, hängt also vom Aufruf ab. Somit sollte der gepostete Code sowohl in Ansi als auch Unicode korrekt sein, da Typ-Aliase verwendet werden.

t.roller 18. Mai 2017 08:56

AW: Versionsinfo auslesen?
 
Der oben genannte Code ist unvollständig: es fehlt die Build-Version.
Delphi-Quellcode:
function GetAppVersionStr: string;
var
  Exe: string;
  Size, Handle: DWORD;
  Buffer: TBytes;
  FixedPtr: PVSFixedFileInfo;
begin
  Exe := ParamStr(0);
  Size := GetFileVersionInfoSize(PChar(Exe), Handle);
  if Size = 0 then RaiseLastOSError;
  SetLength(Buffer, Size);
  if not GetFileVersionInfo(PChar(Exe), Handle, Size, Buffer) then
    RaiseLastOSError;
  if not VerQueryValue(Buffer, '\', Pointer(FixedPtr), Size) then
    RaiseLastOSError;
  Result := Format('%d.%d, Release: %d, Build: %d',
    [LongRec(FixedPtr.dwFileVersionMS).Hi, //major
     LongRec(FixedPtr.dwFileVersionMS).Lo, //minor
     LongRec(FixedPtr.dwFileVersionLS).Hi, //release
     LongRec(FixedPtr.dwFileVersionLS).Lo]) //build
end;
Aufruf:
Delphi-Quellcode:
caption:= 'Version: '+GetAppVersionStr;
-----------------------------
Ausgabe-Beispiel:
Version: 1.2, Release: 3, Build: 4

matze8426 18. Mai 2017 11:46

AW: Versionsinfo auslesen?
 
Vielen Dank für die ausführlichen Antworten. Es funktioniert ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.
Seite 2 von 2     12   

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