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/)
-   -   D2010, Versionsinfo auslesen (https://www.delphipraxis.net/153467-d2010-versionsinfo-auslesen.html)

hoika 4. Aug 2010 08:26

D2010, Versionsinfo auslesen
 
Hallo #,

obwohl hier schon viel geschrieben wurde,
komme ich nicht klar ...

Der meiste Code hier läßt sich unter D2010 nicht kompilieren (Ansicode <-> Unicode).

Der untere Code funktioniert zwar, liefert mir aber z.B. bei Outlook 1.17897.XXX

Delphi-Quellcode:
function GetVersion2(const theFileName: string): string;
var
  VerInfoSize: DWORD;
  VerInfo: Pointer;
  VerValueSize: DWORD;
  VerValue: PVSFixedFileInfo;
  Dummy: DWORD;
begin
  Result := '';
  VerInfoSize := GetFileVersionInfoSize(PChar(theFileName), Dummy);
  if VerInfoSize = 0 then Exit;
  GetMem(VerInfo, VerInfoSize);
  GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
  VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
  with VerValue^ do
  begin
    Result := IntToStr(dwFileVersionMS shr 16);
    Result := Result + '.' + IntToStr(dwFileVersionMS and $FFFF);
    Result := Result + '.' + IntToStr(dwFileVersionLS shr 16);
    Result := Result + '.' + IntToStr(dwFileVersionLS and $FFFF);
  end;
  FreeMem(VerInfo, VerInfoSize);
end;
Diese Zahl wollte ich eigentlich nicht ;)

Hülfe ;)


Da sollte mal jemand die CodeLib-Bsp,-e aktualisieren.


Danke


Heiko

Uwe Raabe 4. Aug 2010 08:33

AW: D2010, Versionsinfo auslesen
 
Wenn man auch zwei unterschiedliche Dateien abfragt :)

Delphi-Quellcode:
  VerInfoSize := GetFileVersionInfoSize(PChar(theFileName), Dummy);  // theFileName
  if VerInfoSize = 0 then Exit;
  GetMem(VerInfo, VerInfoSize);                                      
  GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);   // ParamStr(0)

himitsu 4. Aug 2010 08:34

AW: D2010, Versionsinfo auslesen
 
Was sagen die Rückgabewerte(Result) von GetFileVersionInfo und VerQueryValue?

(ein Try-Finally könnte auch nicht schaden)

[edit]
OK, und das auch noch :shock:

[edit2]
Zitat:

Zitat von hoika (Beitrag 1039414)
Da sollte mal jemand die CodeLib-Bsp,-e aktualisieren.

Deinen ParamStr/theFileName-Fehler kann ich aber in keinem der CodeLib-Einträge finden. :zwinker:

http://www.delphipraxis.net/74080-ve...-abfragen.html
http://www.delphipraxis.net/5057-dat...-auslesen.html
Die CodeLib-Aufräumer sollten mal aufräumen. (das auch immer alles doppelt und Dreifach vorkommen muß)


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