Jak wykryć wersję Windows na podstawie Rejestru

Marco_99

Wstaw na formę: Buttona
W sekcji uses dodaj moduł: Registry

Zdarzenie dla Buttona:

procedure TForm1.Button1Click(Sender: TObject);

 var
  Reg: TRegistry;
  Ver_Win: String;

 begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_LOCAL_MACHINE;
  Reg.OpenKey('SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion',True);
  Ver_Win := Reg.ReadString('ProductName');
  if Ver_Win = '' Then
   Begin
    Reg.OpenKey('SOFTWARE\\Microsoft\\Windows\\CurrentVersion',True);
    Ver_Win := Reg.ReadString('ProductName');
   end;
   Canvas.TextOut(40, 20, Ver_Win);
  Reg.Free;
 end;

5 komentarzy

przecież można prościej ale z labelem

można jeszcze dopisac tak :
Ver_Win := Reg.ReadString('ProductName')+' '+Reg.ReadString('CurrentVersion')+' '+'Build ('+Reg.ReadString('CurrentBuildNumber')+')';

na Windows Millenium zwraca wartość "Microsoft Windows ME".

A dlaczego Canvas.TextOut - to ShowMessage to już za wiele? :)

Chyba prościej jednak skorzystać z GetVersionEx

Testowałem to na Windows 2000, Windows XP i Windows 98, nie wiem jak z Windows 95 i Me.