Einzelnen Beitrag anzeigen

Frickler

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

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