Ja aber weil wProductType = 0 bzw. nicht VER_NT_WORKSTATION ist, springt das Programm ja in die Server Schleife
var OSVersionInfo: TOSVersionInfoEx;
Delphi-Quellcode:
if (OsVersionInfo.dwMajorVersion = 10) and (OsVersionInfo.dwMinorVersion = 0) then
begin
if (OsVersionInfo.wProductType = VER_NT_WORKSTATION) then
begin
VersionString := 'Windows 10.0';
VersionTyp := wvWin10;
end
else
begin
VersionString := 'Windows Server 2016';
VersionTyp := wvWinServer2016;
end;
Showmessage(inttostr(OsVersionInfo.wProductType)); //liefert 0
end;
if (OsVersionInfo.wSuiteMask and VER_SUITE_PERSONAL) = VER_SUITE_PERSONAL then
VersionString := VersionString + ' Home Edition'
else
VersionString := VersionString + ' Professional';
end;
ändere ich
if (OsVersionInfo.wProductType = VER_NT_WORKSTATION) then in
if (OsVersionInfo.wProductType <> VER_NT_WORKSTATION) then wird Windows 10 erkannt was ja aber falsch ist laut
MSDN
OsVersionInfo.dwMajorVersion, OsVersionInfo.dwMinorVersion, OsVersionInfo.szCSDVersion, OsVersionInfo.dwBuildNumber und OsVersionInfo.wSuiteMask wird also richtig ausgelesen warum dann
OsVersionInfo.wProductType nicht