Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Productversion auslesen liefert unter Vista falschen Wert (https://www.delphipraxis.net/91843-productversion-auslesen-liefert-unter-vista-falschen-wert.html)

MagicAndre1981 10. Mai 2007 17:52


Productversion auslesen liefert unter Vista falschen Wert
 
Für meine Windowserkennungsroutine brauche ich die Produktversion einer Datei, da diese nur beim Kernel erhöht wird, aber nicht bei anderen aktualisierten Windowsdateien. Nun der Explorer kann das wunderbar anzeigen:

http://img443.imageshack.us/img443/6...xplorerjh1.png

, aber bei mir klappt das nicht. Ich bekomme immer 6.0.6000.20532, also die Dateiversion und nicht die Produktversion. :gruebel:

Delphi-Quellcode:
function GetVersionsInfo(const AFilename :String; var V1,V2,V3,V4:Word):Boolean;
var
  VerInfoSize : Integer;
  VerValueSize : DWord;
  Dummy       : DWord;
  VerValue    : PVSFixedFileInfo;
  VerInfo     : Pointer;
  FName       : PChar;
begin
  FName := StrAlloc(Max_Path);
  try
    StrPCopy(FName, AFileName);
    VerInfoSize:=GetFileVersionInfoSize(FName, Dummy);
    Result := False;
    if VerInfoSize > 0 then
    begin
      GetMem(VerInfo,VerInfoSize);
      try
        if GetFileVersionInfo(FName,0,VerInfoSize,VerInfo) then
        begin
          if VerQueryValue(VerInfo,'\',Pointer(VerValue),VerValueSize) then
           with VerValue^ do
           begin
             V1 := dwProductVersionMS shr 16;
             V2 := dwProductVersionMS and $FFFF;
             V3 := dwProductVersionLS shr 16;
             V4 := dwProductVersionLS and $FFFF;
           end;
           Result:=True;
        end;
      finally
        FreeMem(VerInfo,VerInfoSize);
      end;
    end;
  finally
    StrDispose(FName);
  end;
end;
Also hab ich mal den XN Resource Editor geschnappt und siehe da, da wird auch 6.0.6000.20532 als Produktversion angezeigt http://img406.imageshack.us/img406/8...versionxy4.png

Wie schafft der Explorer das?

TNoob 10. Mai 2007 18:13

Re: Productversion auslesen kiefert unter Vista falschen Wer
 
Es gibt einen Unterschied zwischen Produkt- und Dateiversion.

Hier wurde das schonmal besprochen: Klick

MfG

Mackhack 10. Mai 2007 19:02

Re: Productversion auslesen kiefert unter Vista falschen Wer
 
Andre,

deine Ueberschrift sollte liefert nicht kiefert heissen :???:

MagicAndre1981 10. Mai 2007 19:17

Re: Productversion auslesen kiefert unter Vista falschen Wer
 
Zitat:

Zitat von Mackhack
Andre,

deine Ueberschrift sollte liefert nicht kiefert heissen :???:

Mist, falsche Taste erwischt, danke :)


Zitat:

Zitat von TNoob
Es gibt einen Unterschied zwischen Produkt- und Dateiversion.

das weiß ich ja, deshalb frage ich ja ;)

Aber ich hab die Lösung gefunden. Der Explorer ließt die Produktversion aus der MUI-Datei. Die Produktversion und Dateiversion sind auch bei Vista nach einem Update immer gleich. Nur wenn der Explorer eine MUI-Datei zu der DLL findet, dann ließt der Explorer die Produktversion aus der MUI-Datei.

Mackhack 11. Mai 2007 03:55

Re: Productversion auslesen kiefert unter Vista falschen Wer
 
Zitat:

Zitat von TNoob
Es gibt einen Unterschied zwischen Produkt- und Dateiversion.
MfG

Hi,

kann mir das mal jemand erklären bitte da ich das gerade auch brauche in einem Projekt!

Danke!


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