Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Versionsnummern seiner Anwendung unter Vista ermitteln? (https://www.delphipraxis.net/85283-versionsnummern-seiner-anwendung-unter-vista-ermitteln.html)

juergen 28. Jan 2007 15:55


Versionsnummern seiner Anwendung unter Vista ermitteln?
 
Hallo zusammen,
habe nun schon einiges ausprobiert um auch unter Vista die Versionsnummern meiner Exe auszulesen... :?
Momentan verwende ich diese Funktion:
GetFileVersion
Aber auch damit bekomme ich unter Vista keine Versionsanzeige.
Liegt das am Framework?

Hat da jemand schon Erfahrung, bzw. eine Idee wie man (wenn möglich) mit einer Funktion unter allen BS
die Versionsnummern heraus bekommt?

sakura 28. Jan 2007 16:01

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
Ich habe mich erst heute für die gleiche Lösung entschieden und diese auch unter Vista getestet. Dabei bin ich auf keine Probleme gestoßen, auch nicht ohne administrative Rechte.

...:cat:...

juergen 28. Jan 2007 17:00

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
Das ist ja komisch.
Allerdings nutze ich noch das RC2 von Vista.
Könnte es sein, dass dort GetFileVersionInfoSize nicht funktioniert?

raffo 28. Jan 2007 18:02

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
ähm, ich verwende eine ganz andere Version der GetFileVersion (schon seit mind. 2 Jahren). Nun hab ich auch VISTA und es funzt immer noch:

Delphi-Quellcode:
function GetFileVersion:String;

var Filename: string;
    Size, Size2: integer;
    Buffer, Buffer2: pointer;
begin
  Result:= '?';
  Filename:= Application.ExeName;
  Size := GetFileVersionInfoSize(pchar(Filename), integer(Buffer));
  GetMem(Buffer,Size);
  try
    if GetFileVersionInfo(pchar(Filename), 0, Size, Buffer) then begin
      if VerQueryValue(Buffer, '\', Buffer2, Size2) then begin
        with TVSFixedFileInfo(Buffer2^) do begin
          Result := inttostr(pword(integer(@dwFileVersionMS)+2)^)+'.'+
                    inttostr(pword(integer(@dwFileVersionMS)+0)^)+''+
                    inttostr(pword(integer(@dwFileVersionLS)+2)^)+' -'+
                    inttostr(pword(integer(@dwFileVersionLS)+0)^);
        end;
      end;
    end;
  finally
    Dispose(Buffer);
  end;
end;
(Achtung, andere Parameterübergabe) Was mir auffällt an DEINER Version, das ein DUMMY verwendet wird, HIER nicht!

// EDIT: Ich korrigiere mich gerade, die Funktion scheint tatsächlich nicht mehr zu funzen, habe dummerweise nach meinem LABEL der Versionsnummer geschaut *gmpf*

juergen 28. Jan 2007 18:43

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
Jetzt sind schon 2 Bestätigungen, dass es grundsätzlich funktioniert. :thumb:
Bleiben nur 2 Möglichkeiten, warum es bei mir nicht geht:
1.) Vista untersützt diese Funktion nicht im RC 2 ...
1.) Vista Version: da habe ich die Ultimate aktiviert

raffo 29. Jan 2007 02:34

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
Jürgen, ich habe meinen Beitrag nochmal editiert

> EDIT: Ich korrigiere mich gerade, die Funktion scheint tatsächlich nicht mehr zu funzen, habe dummerweise nach meinem LABEL der Versionsnummer geschaut *gmpf*

Es geht tatsächlich unter Vista nicht mehr wenn ich das Projekt unter XP compiliere. Nun habe ich eben unter VISTA kompiliert, und dort zeigt er mir in einer Maske tatsächlich die Versionnummer an. Hast Du auch unter Vista kompiliert?

juergen 29. Jan 2007 06:17

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
@Ralf,
Danke für diese Rückmeldung!

Nein, ich hatte unter Windows XP kompiliert.
Dann werde ich mal mein Delphi 7 unter Vista installieren und mein Projekt dort kompilieren.

Ich werde mein Ergebnis dann hier posten.

Bernhard Geyer 29. Jan 2007 08:13

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
Unsere unter W2K compilierten Programme haben kein Problem.

Verwendet wird das Property FileVersion der Klasse TJclFileVersionInfo der Jedi-Version 1.20

Robert Marquardt 29. Jan 2007 08:38

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
JCL 1.20? Mach besser einen Antiquitaetenhandel auf. :-)
Kannst du mal pruefen ob die aktuelle JCL immer noch funktioniert?

IngoD7 29. Jan 2007 08:48

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
Zitat:

Zitat von juergen
Dann werde ich mal mein Delphi 7 unter Vista installieren und mein Projekt dort kompilieren.

Ich werde mein Ergebnis dann hier posten.

Ich vermute mal, das wird dann funktinieren.
Aber wie ist es in anderer Richtung? Lässt sich die Version eines unter Vista compilierten Programms unter XP ermitteln? Wohl eher nicht, wie?

Abgesehen davon finde ich es schonmal traurig, dass API-Funktionen anscheinend so verändert wurden, dass das ein neueres Betriebssystem ältere Funktionen nicht mehr "bedienen" kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 Uhr.
Seite 1 von 3  1 23      

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