AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Delphi-Versionsnummer per IOTA-Service abfragen?
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi-Versionsnummer per IOTA-Service abfragen?

Ein Thema von r29d43 · begonnen am 18. Mär 2021 · letzter Beitrag vom 19. Mär 2021
Antwort Antwort
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.686 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Delphi-Versionsnummer per IOTA-Service abfragen?

  Alt 19. Mär 2021, 08:22
GExperts führt dazu eine Liste der Versionsinfos diverser Executables und BPLs. Die wird benutzt, um diverse Bugs / Features einzelner Updates zu umschiffen. Unit GX_GetIdeVersion im Unterverzeichnis source\framework.

Sieht dann z.B. so aus:

Delphi-Quellcode:
{
  Delphi 10.4 Sydney
  File                File Version    Size      Modified Time
  delphicoreide270.bpl 27.0.37889.9797
  coreide270.bpl      27.0.37889.9797
  bds.exe              27.0.37889.9797
  dcldb270.bpl        27.0.37889.9797

  Patch1 and Patch2 apparently did not change any of these versions and even those files
  the patches replaced still have the same version as the original files. WTF?

  Delphi 10.4.1 Sydney Update 1
  File                File Version    Size      Modified Time
  delphicoreide270.bpl 27.0.38860.1461
  coreide270.bpl      27.0.38860.1461
  bds.exe              27.0.38860.1461
  dcldb270.bpl        27.0.38860.1461

  Delphi 10.4.2 Sydney Update 2
  File                File Version    Size      Modified Time
  delphicoreide270.bpl 27.0.40680.4203
  coreide270.bpl      27.0.40680.4203
  bds.exe              27.0.40680.4203
  dcldb270.bpl        27.0.40680.4203
}


function GetRS104Version: TBorlandIdeVersion;
const
  RegKey = 'Software\Embarcadero\BDS\21.0\CatalogRepository\Elements\10.4Patch2pro-10';
  CoreIde2700: TVersionNumber = (Minor: 27; Major: 0; Build: 9797; Release: 37829);
  CoreIde2700UPd1: TVersionNumber = (Minor: 27; Major: 0; Build: 1461; Release: 38860);
  CoreIde2700UPd2: TVersionNumber = (Minor: 27; Major: 0; Build: 4203; Release: 40680);
var
  RegValue: Integer;
  CoreIdeFileVersion: TVersionNumber;
begin
  CoreIdeFileVersion := GetFileVersionNumber(GetIdeRootDirectory + 'Bin\coreide270.bpl');

  if CompareVersionNumber(CoreIdeFileVersion, CoreIde2700UPd2) >= 0 then begin
    Result := ideRS104U2;
  end else if CompareVersionNumber(CoreIdeFileVersion, CoreIde2700UPd1) >= 0 then begin
    Result := ideRS104U1;
  end else begin
    // There was patch 2 for 10.4.0 which broke StringGrids in a new way
    // so we have to detect it.
    RegValue := TRegistry_ReadInteger(RegKey, 'Installed', 0, HKEY_CURRENT_USER);
    if RegValue <> 0 then
      Result := ideRS104P2
    else
      Result := ideRS104;
  end;
end;
In der Regel reicht es, wenn man CoreIde prüft, aber bei einigen älteren Versionen wurden durch ein Update / Patch nur einzele wichtige Dateien geändert, so dass man gezielt diese prüfen muss.
Thomas Mueller

Geändert von dummzeuch (19. Mär 2021 um 08:26 Uhr)
  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 03:33 Uhr.
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