unit WindowsVersion;
interface
type
TWindowsVersion = (wvUnknown, wv95, wv98, wvME, wvNT, wv2000, wvXP, wv2003, wvVista);
function GetWindowsVersion: TWindowsVersion;
implementation
uses
Windows;
function GetWindowsVersion: TWindowsVersion;
var
OsVerInfo: TOSVERSIONINFO;
begin
Result := wvUnknown;
ZeroMemory(@OsVerInfo, SizeOf(OsVerInfo));
OsVerInfo.dwOSVersionInfoSize := SizeOf(TOSVERSIONINFO);
GetVersionEx(OsVerInfo);
if OsVerInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then
begin
if (OsVerInfo.dwMajorVersion = 4) and (OsVerInfo.dwMinorVersion = 0) then
Result := wv95
else if (OsVerInfo.dwMajorVersion = 4) and (OsVerInfo.dwMinorVersion = 10) then
Result := wv98
else if (OsVerInfo.dwmajorVersion = 4) and (OsVerInfo.dwminorVersion = 90) then
Result := wvME
end
else if OsVerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then
begin
if (OsVerInfo.dwMajorVersion <= 4) then
Result := wvNT
else if (OsVerInfo.dwMajorVersion = 5) and (OsVerInfo.dwMinorVersion = 0) then
Result := wv2000
else if (OsVerInfo.dwMajorVersion = 5) and (OsVerInfo.dwMinorVersion = 1) then
Result := wvXP
else if (OsVerInfo.dwMajorVersion = 5) and (OsVerInfo.dwMinorVersion = 2) then
Result := wv2003
else if (OsVerInfo.dwMajorVersion = 6) then
Result := wvVista;
end;
end;
end.