...get the Windows Version? (2)

Author: Johan Stokking
Homepage: http://johan.stokking.nl

Category: System

uses registry;

function GetWindowsVersion: string;
var
  
VerInfo: TOsversionInfo;
  PlatformId, VersionNumber: string;
  Reg: TRegistry;
begin
  
VerInfo.dwOSVersionInfoSize := SizeOf(VerInfo);
  GetVersionEx(VerInfo);
  // Detect platform
  
Reg := TRegistry.Create;
  Reg.RootKey := HKEY_LOCAL_MACHINE;
  case VerInfo.dwPlatformId of
    
VER_PLATFORM_WIN32s:
      begin
        
// Registry (Huh? What registry?)
        
PlatformId := 'Windows 3.1';
      end;
    VER_PLATFORM_WIN32_WINDOWS:
      begin
        
// Registry
        
Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion', False);
        PlatformId    := Reg.ReadString('ProductName');
        VersionNumber := Reg.ReadString('VersionNumber');
      end;
    VER_PLATFORM_WIN32_NT:
      begin
        
// Registry
        
Reg.OpenKey('\SOFTWARE\Microsoft\Windows NT\CurrentVersion', False);
        PlatformId    := Reg.ReadString('ProductName');
        VersionNumber := Reg.ReadString('CurrentVersion');
      end;
  end;
  Reg.Free;
  Result := PlatformId + ' (version ' + VersionNumber + ')';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  
Label1.Caption := GetWindowsVersion;
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base