AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Versionnummer des Programm auslesen?
Thema durchsuchen
Ansicht
Themen-Optionen

Versionnummer des Programm auslesen?

Ein Thema von Alexander · begonnen am 26. Okt 2003 · letzter Beitrag vom 30. Dez 2005
 
MathiasSimmack
(Gast)

n/a Beiträge
 
#3

Re: Versionnummer des Programm auslesen?

  Alt 26. Okt 2003, 12:35
Irgendwann mal ... äh ... geliehen von Luckie (glaube ich):
Delphi-Quellcode:
unit FileVer;

interface

function GetFileVersionsString(const p_sFilepath : string) : string;


implementation

uses
  Windows, SysUtils;

const
  sFixVerFormat = ' %d.%d.%d.%d';

function GetFileVersionsString(const p_sFilepath : string) : string;
var
  dwVersionSize : DWord; // Buffer für die Grösse der Versionsinfo der abgefragten Datei
  dwDummy : DWord; // Dummy, Wert wird nicht benötigt
  pVerBuf : Pointer; // Buffer für die Versionsdaten
  pFixBuf : PVSFixedFileInfo; // Buffer für die Versionsinfo fester Länge
  sReqdInfo : string; // Hier kommt rein, welcher Teil der Versionsinfo abgefragt werden soll
begin
  // Annahme: Die Datei hat keine Versionsinfo
  Result := '';

  dwDummy := 0; // Dummy initialisieren
  sReqdInfo := '\'; // Es soll die Versionsinfo fester Länge abgefragt werden

  // Mal sehen, wieviel Platz die Versionsinfo der Datei braucht
  dwVersionSize := GetFileVersionInfoSize(PChar(p_sFilepath),dwDummy);
  if dwVersionSize > 0 then begin // Wenn > 0, dann Versionsinfo vorhanden
    GetMem(pVerBuf,dwVersionSize);
    try
      fillchar(pVerBuf^,dwVersionSize,0);

      // Gesamte Versionsinformationen auslesen
      if GetFileVersionInfo(PChar(p_sFilepath),0,dwVersionSize,pVerBuf) then
        begin // Werte für Versionsinfo fester Länge extrahieren
          if VerQueryValue(pVerBuf,PChar(sReqdInfo),Pointer(pFixBuf),dwDummy) then
            begin
              // und als Ergebnis ausgeben
              Result := Format(sFixVerFormat,
                [(pFixBuf^.dwFileVersionMS and $FFFF0000) shr 16,
                 pFixBuf^.dwFileVersionMS and $0000FFFF,
                 (pFixBuf^.dwFileVersionLS and $FFFF0000) shr 16,
                 pFixBuf^.dwFileVersionLS and $0000FFFF]);
        end;
      end;
    finally // Resourcen wieder freigeben
      FreeMem(pVerBuf,dwVersionSize);
    end;
  end;
end;

end.
Ins Projekt einbinden, und bspw. so aufrufen:
Delphi-Quellcode:
  MessageBox(self.Handle,
    pchar(self.Caption + GetFileVersionsString(paramstr(0)) + #13#10 +
      INFOABOUT + #13#10#13#10 + LICENSEABOUT + #13#10#13#10 + URLSABOUT),
    pchar(self.Caption),
    MB_OK or MB_ICONINFORMATION);
  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 00:38 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-2025 by Thomas Breitkreuz