AGB  ·  Datenschutz  ·  Impressum  







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

Version zur Laufzeit abfragen.

Ein Thema von Ca3dEsnox · begonnen am 11. Mai 2005 · letzter Beitrag vom 12. Mai 2005
Antwort Antwort
Ca3dEsnox

Registriert seit: 14. Jan 2005
7 Beiträge
 
#1

Version zur Laufzeit abfragen.

  Alt 11. Mai 2005, 18:31
Ich will bei meinem Programm die Version in der Titelleiste anzeigen und hab keine Lust bei jeder Änderung der Version diese von hand in der titelleiste zu ändern. Daher meine Frage: Kann man irgendwie die version während das Programm läuft auslesen? Und wie?
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Version zur Laufzeit abfragen.

  Alt 11. Mai 2005, 18:33
Schreib dir doch ins FormCreate Code, der dir die Caption anhand einer Konstante ändert, die du dann lediglich ändern musst.
Julian J. Pracht
  Mit Zitat antworten Zitat
Ca3dEsnox

Registriert seit: 14. Jan 2005
7 Beiträge
 
#3

Re: Version zur Laufzeit abfragen.

  Alt 11. Mai 2005, 18:38
Da kann ich die Caption auch gleich ändern.
Bei jedem Compilen ändert sich bei mir die Buildnummer und die würde ich gerne direkt abfragen.
Bei VB 6.0 geht das mit App.Build(oder so ähnlich), also muss das doch auch bei Delphi gehen.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Version zur Laufzeit abfragen.

  Alt 11. Mai 2005, 18:40
Hallo,

diesen Code hab ich mal irgendwo gefunden (kann sein dass es auch diese CodeLib war)

Delphi-Quellcode:
type
   TIntArray = array of Integer;

function GetProgramVersion(sFileName: String; var Version: TIntArray): Boolean;
//This function retrieves the version number included in an exe file specified
//with sFileName
var
   VerInfoSize: DWORD;
   VerInfo: Pointer;
   VerValueSize: DWORD;
   VerValue: PVSFixedFileInfo;
   Dummy: DWORD;
begin
   Result := True;
   if (not FileExists(sFileName)) or (LowerCase(ExtractFileExt(sFileName)) <> '.exe') then
      exit;
   try
      VerInfoSize := GetFileVersionInfoSize(PChar(sFileName), Dummy);
      GetMem(VerInfo, VerInfoSize);
      GetFileVersionInfo(PChar(sFileName), 0, VerInfoSize, VerInfo);
      VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
      SetLength(Version, 4);
      with VerValue^ do
      begin
         Version[0] := dwFileVersionMS shr 16;
         Version[1] := dwFileVersionMS and $FFFF;
         Version[2] := dwFileVersionLS shr 16;
         Version[3] := dwFileVersionLS and $FFFF;
      end; //with VerValue^ do
      FreeMem(VerInfo, VerInfoSize);
   except
      Result := False;
   end; //try-except-end;
end; //function GetProgramVersion(sFileName: String; var Version: TIntArray): Boolean;
Du kannst den Code ja noch fuer eigene Verwendung umschreiben. Die Version steht dann im Integer-Array welches uebergeben wurde.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Ca3dEsnox

Registriert seit: 14. Jan 2005
7 Beiträge
 
#5

Re: Version zur Laufzeit abfragen.

  Alt 11. Mai 2005, 18:46
Ok danke werds mal probieren.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Version zur Laufzeit abfragen.

  Alt 11. Mai 2005, 23:00
Zitat von Ca3dEsnox:
Ich will bei meinem Programm die Version in der Titelleiste anzeigen und hab keine Lust bei jeder Änderung der Version diese von hand in der titelleiste zu ändern. Daher meine Frage: Kann man irgendwie die version während das Programm läuft auslesen? Und wie?
Es geht auch so (verwende ich so in meinen Abouts):
Delphi-Quellcode:
//------------------------------------------------------------------------
function ProgramVersion : string;
//------------------------------------------------------------------------
// Rückgabe der Versionsnummer
//------------------------------------------------------------------------
const
   InfoNum = 1;
   InfoStr : array[1..InfoNum] of string = ('FileVersion');
var
   S: string;
   n, Len, i: DWORD;
   Buf: PChar;
   Value: PChar;
begin
   S := Application.ExeName;
   n := GetFileVersionInfoSize(PChar(S), n);
   if n > 0 then
   begin

     Buf := AllocMem(n);
     GetFileVersionInfo(PChar(S), 0, n, Buf);
     for i := 1 to InfoNum do
       if VerQueryValue(Buf, PChar('StringFileInfo\040704E4\' + InfoStr[i]), Pointer(Value), Len) then
          result := result + Value;
     FreeMem(Buf, n);
   end;
end;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Version zur Laufzeit abfragen.

  Alt 12. Mai 2005, 08:19
Noch ein Weg - speziell, wenn keine Release und Build Nummern ausgegeben werden:

Delphi-Quellcode:
uses
  SysUtils;
var
  Version: Cardinal;
  sVersion: string;
begin
  Version := GetFileVersion(ParamStr(0));
  sVersion := Format('Version %d.%d', [LongRec(Version).Hi, LongRec(Version).Lo]));
end;
Grüße vom marabu
  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 23:27 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