Meine Funktion zur Erkennung der
OS Version funktioniert einwandfrei mit D2006 in der
IDE
Das gleiche in D2009 gibt mir immer XP als Rückgabe in der
IDE.
Wird die EXE kompiliert gestartet erkennt er aber das richtig
OS.
Sehr seltsam das ganze.
Delphi-Quellcode:
function OsVersion: Integer;
var
osVerInfo: TOSVersionInfo;
majorVer, minorVer: Integer;
begin
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(osVerInfo) then
begin
majorVer := osVerInfo.dwMajorVersion;
minorVer := osVerInfo.dwMinorVersion;
case osVerInfo.dwPlatformId of
VER_PLATFORM_WIN32_NT:
begin
if majorVer <= 4 then
Result := cOsWinNT
else if (majorVer = 5) and (minorVer = 0) then
Result := cOsWin2000
else if (majorVer = 5) and (minorVer = 1) then
Result := cOsXP
else if (majorVer = 6) and (minorVer = 0) then
Result := cOsVista
else if (majorVer = 6) and (minorVer = 1) then
Result := cOsWin7
else
Result := cOsUnknown;
end;
VER_PLATFORM_WIN32_WINDOWS:
begin
if (majorVer = 4) and (minorVer = 0) then
Result := cOsWin95
else if (majorVer = 4) and (minorVer = 10) then
begin
if osVerInfo.szCSDVersion[1] = 'A' then
Result := cOsWin98SE
else
Result := cOsWin98;
end
else if (majorVer = 4) and (minorVer = 90) then
Result := cOsWinME
else
Result := cOsUnknown;
end;
else
Result := cOsUnknown;
end;
end
else
Result := cOsUnknown;
end;