Newsgroup: it.comp.lang.delphi
Titolo: Rilevare la versione di Windows

Ciao a tutto il n.g.
  da qualche giorno mi sto scontrando con questa problematica: è possibile
rilevare con precisione la versione di Windows??
In altre parole è possibile rilevare se il sistema operativo corrente è
Win2K, WinXP, Win98, [WinME] oppure WinNT4.5??? (per il momento sono
riuscito solo a verificare se il s.o. è basato su tecnologia NT o meno).
Ciao e grazie a tutti
Ricky

Sono bastati 10 secondi e google:
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_11004781.html
do u know "motori di ricerca", si?
Ciao, Sandro

rilevare con precisione la versione di Windows??
http://makeashorterlink.com/?R21F624C5

 possibile rilevare con precisione la versione di Windows??
Oltre ai link suggeriti, la libreria OS per Delphi JCL contiene una
unit, JclSysInfo.pas, con function GetWindowsVersion: TWindowsVersion;
(v. jclhelp).
Le JCL si possono trovare su Sourceforge (
sourceforge.net/projects/jcl
)
Saluti
Paolo Arosio

Grazie mille a tutti,
  i vostri consigli, come al solito, sono stati preziosissimi.
Ciao:Ricky

un po' tadri ma potrebbe esserti utile...
function GetWinVerNumeric : String;
var
  Version : DWORD;
  MajorVersion, MinorVersion : Byte;
begin
  Version := GetVersion();
  MajorVersion := LOBYTE(LOWORD(Version));
  MinorVersion := HIBYTE(LOWORD(Version));
  Result := IntToStr(MajorVersion) +
            '.' +
            IntToStr(MinorVersion);
end;
function GetWinVer : String;
var
  VersionInfo: TOSVersionInfo;
begin
  VersionInfo.dwOSVersionInfoSize := SizeOf(VersionInfo);
  GetVersionEx(VersionInfo);
  with VersionInfo do begin
    case dwPlatformid of
      0 : begin
          result := 'Windows 3.11';
          end;
      1 : begin
            case dwMinorVersion of
              0 : result := 'Windows 95';
              10: begin
                    if ( szCSDVersion[ 1 ] = 'A' ) then
                         Result := 'Windows 98 SE'
                    else Result := 'Windows 98';
                  end;
              90 : result := 'Windows Millenium Edition';
              else result := 'Unknown Windows Version';
            end;
          end;
      2 : begin
            case dwMajorVersion of
              3 : result := 'Windows NT';
              4 : result := 'Windows XP';
              5 : begin
                    case dwMinorVersion of
                      0 :  result := 'Windows 2000';
                      1 :  result := 'Windows XP';
                      else result := 'Unknown Windows NT Version';
                    end;
                    if szCSDVersion <> '' then
                      result := result + ' + Service pack: ' + szCSDVersion;
                  end;
              else result := 'WUnknown Windows Version';
            end; // end case
      end; // end case
    end; // end case
  end; // end version info
end; // GetWindowsVersion
function GetWinBuild : Integer;
var
  Version : DWORD;
  MajorVersion : Byte;
begin
  Version := GetVersion();
  if (Version and $80000000) = 0 then begin // Windows NT/XP
    Result := HIWORD(Version);
  end
  else if (MajorVersion < 4) then begin // Win32s
    Result := HIWORD(Version) and $7FFF;
  end
  else begin // Windows 95/98/ME -- No build numbers provided
    Result := 0;
  end;
end;