Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programmname und Version ermitteln (https://www.delphipraxis.net/66403-programmname-und-version-ermitteln.html)

Archer 29. Mär 2006 10:54


Programmname und Version ermitteln
 
Hallo!

folgendes Problemchen:

Ich möchte gerne zur Laufzeit den Namen des laufenden Programmes und die Versionsnummer ermitteln, um diese Informationen im Header einer generierten .AWL Datei zu platzieren.

Geht das irgendwie ?

Gruß, Archer

Archer 29. Mär 2006 11:04

Re: Programmname und Version ermitteln
 
Also, den Namen bekomme ich mittlerweile über
Delphi-Quellcode:
Programmname:=application.Title;
aber hat noch jemand einen Tip für die Versionsnummer?

Gruß, Archer

Matze 29. Mär 2006 11:07

Re: Programmname und Version ermitteln
 
Hallo,

schau dir mal die Demo hier im Anhang an, da müsste solch eine Funktion implementiert sein.

Nachtrag:

Auszug:

Delphi-Quellcode:
// =============================================================================
// FUNCTION: GetVersion
// DESCRIPTION:
//   Reads the current version of the application
// RESULT: Version (String)
// =============================================================================
function GetVersion: string;
var
  VerInfoSize: DWORD;
  VerInfo: Pointer;
  VerValueSize: DWORD;
  VerValue: PVSFixedFileInfo;
  Dummy: DWORD;
begin
  VerInfo := nil;
  try
    VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);
    try
      GetMem(VerInfo, VerInfoSize);
      GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
      VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
      with VerValue^ do
      begin
        Result := Format('%d.%d.%d.%d',
          [dwFileVersionMS shr 16,
          dwFileVersionMS and $FFFF,
          dwFileVersionLS shr 16,
          dwFileVersionLS and $FFFF]);
      end;
    finally
      FreeMem(VerInfo, VerInfoSize);
    end;
  except
    Result:= #$31#$2E#$30; // 1.0
  end;
end;

marabu 29. Mär 2006 11:13

Re: Programmname und Version ermitteln
 
Application.Title kann während der Entwurfs- oder Laufzeit geändert werden. Den Namen der gerade ausgeführten Datei würde ich eher so ermitteln:

Delphi-Quellcode:
appName := ChangeFileExt(ExtractFileName(ParamStr(0)), '');
Grüße vom marabu

Archer 29. Mär 2006 11:27

Re: Programmname und Version ermitteln
 
Zunächst mal vielen Dank für die Tipps!

@Matze:

Die von Dir beschriebene function habe ich mal so wie sie ist ins Programm reingebastelt.
Allerdings bekomme ich bei deren Aufruf im Programm einen Fehler (Zugriffsverletzung blablabla in Version.dll).
Gehe ich mit Step Over ('F8') drüber weg, schreibt er mir allerdings die korrekte Versionsnummer in mein file.
wie kriege ich den Fehler weg???


Danke, Archer

Luckie 29. Mär 2006 11:29

Re: Programmname und Version ermitteln
 
Du musst auch Versionsinformationen im Image haben. Projekt -> Optionen da irgendwo kannst du das einstelln.

FriFra 29. Mär 2006 11:34

Re: Programmname und Version ermitteln
 
Zitat:

Zitat von marabu
Application.Title kann während der Entwurfs- oder Laufzeit geändert werden. Den Namen der gerade ausgeführten Datei würde ich eher so ermitteln:

Delphi-Quellcode:
appName := ChangeFileExt(ExtractFileName(ParamStr(0)), '');
Grüße vom marabu

Also das halte ich für ungeeignet. Was hat der Name der Programmdatei mit dem Programmnamen zu tun? Ich halte mich z.b. nach wie vor an die 8:3 Namenskonvention für Dateinamen (bin ich noch von MS-Dos und Win3.x gewöhnt), da wird dann schnell aus der Lohnbuchhaltung eine lohnbuch.exe oder noch besser lb.exe ;)

Archer 29. Mär 2006 11:35

Re: Programmname und Version ermitteln
 
Wenn man eine Versionsnummer anzeigen will, sollte man auch eine haben!!! :wall:

@ Luckie:
kaum macht mans richtig, gehts! :oops:
Ich danke Dir!

@all helpers:

Vielen Dank für die Hilfe, das wars!

Gruß, Archer


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 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