AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Falsche Windows-Version [erledigt]

Ein Thema von Incocnito · begonnen am 23. Jun 2025 · letzter Beitrag vom 25. Jun 2025
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.782 Beiträge
 
Delphi 12 Athens
 
#1

AW: Falsche Windows-Version [erledigt]

  Alt 23. Jun 2025, 16:28
Standardmäßig kompiliert man dieses Manifest mit ein,
als Ressource in die EXE und legt sie nicht einzeln daneben (ja, das geht auch, aber so geht das Manifest auch nicht verloren)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
659 Beiträge
 
Delphi XE6 Enterprise
 
#2

AW: Falsche Windows-Version [erledigt]

  Alt 25. Jun 2025, 12:53
Manifest ist gar nicht nötig. Dieser Aufruf:
Delphi-Quellcode:
type
  TRTLOSVersioninfoExW = record
    dwOSVersionInfoSize: DWORD;
    dwMajorVersion: DWORD;
    dwMinorVersion: DWORD;
    dwBuildNumber: DWORD;
    dwPlatformId: DWORD;
    szCSDVersion: array[0..127] of WIDECHAR;
    wServicePackMajor: WORD;
    wServicePackMinor: WORD;
    wSuiteMask: WORD;
    wProductType: BYTE;
    wReserved: BYTE;
  end;

function RTLGetVersion(out RtlOsVer: TRTLOSVersioninfoExW): boolean;
var
  po : TFarProc;
  hKernelLib: THandle;
  GetRTLVEX : function(var vex: TRTLOSVersioninfoExW): DWORD; stdcall;
begin
  result := false;
  ZeroMemory(@RtlOsVer, sizeof(RtlOsVer));
  RtlOsVer.dwOSVersionInfoSize := sizeof(TRTLOSVersioninfoExW);
  hKernelLib := LoadLibrary('ntdll');
  if hKernelLib > 0 then
  try
    po := GetProcAddress(hKernelLib, 'RtlGetVersion');
    if po <> nil then begin
      @GetRTLVEX := po;
      GetRTLVEX(RtlOsVer);
      result := true;
    end;
  finally
    FreeLibrary(hKernelLib);
  end
end;
funktioniert auch ohne Manifest.
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
172 Beiträge
 
Delphi 12 Athens
 
#3

AW: Falsche Windows-Version [erledigt]

  Alt 25. Jun 2025, 19:00
Manifest ist gar nicht nötig. Dieser Aufruf:
...
Das ist ja auch viel einfacher

Aber, klar, man kann Windows auch dazu bewegen, die tatsächliche Version herauszurücken. Nur kann ein fehlendes Manifest noch weitere Nachteile mit sich bringen, wie veraltete Dialoge. Windows rechnet dann eben damit, dass das Programm nicht unter Windows 11 getestet wurde. Und wenn man einen Browser einbindet (z.B. Chromium Embedded), kann sich das sogar negativ auf die Performance auswirken. Was die Entwickler hätten verhindern können, wenn Sie Deine Funktion verwendet hätten... Wie auch immer, Manifest ist trotzdem zu empfehlen.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:40 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