Determine what version of Windows a PC is running

Do you need to determine what version of Windows a PC is running? The following code will work on all (Windows) platforms with Delphi 1 (16 bit) to Delphi 5 (32 bit).

 

It will distinguish between Windows 2000, NT, Windows 98, 95 and even Windows 3.1/ Windows for Workgroups.

 

  

 function WinSystem : String;

var

  OSVersion : TOSVersionInfo;

  WinVersion: String;

  OrdHigh   : DWORD;

  OrdLow    : DWORD;

begin

  OSVersion.dwOSVersionInfoSize := sizeof(OSVersion);

  GetVersionEx(OSVersion);

  OrdHigh := (OSVersion.dwBuildNumber shr 24) and $FF;

  OrdLow := (OSVersion.dwBuildNumber shr 16) and $FF;

 

  if OSVersion.dwPlatformId=VER_PLATFORM_WIN32_NT then

  begin

    if (OrdHigh>=5) then

    begin

      WinVersion := 'Windows 2000'

    end

    else

    begin

      WinVersion := 'Windows NT'

    end;

  end;

  if OSVersion.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS then

  begin

    if (OrdLow>=90) or (OrdHigh>=5) then

    begin

      WinVersion := 'Windows Millennium'

    end;

    if (OrdLow>=10) and (OrdLow<90) then

    begin

      WinVersion := 'Windows 98'

    end;

    if (OrdLow<10) then

    begin

      WinVersion := 'Windows 95'

    end;

    if (OrdLow<5) then

    begin

      WinVersion := 'Windows 3.1/ WfWg'

    end;  

  end;

 

  Result := WinVersion;

end;