[Back to DELPHI SWAG index]  [Back to Main SWAG index]  [Original]


>
> Hello !
>
> Does anyone know, how can I detect the Windows System Version information?
>
> Thanks!

Hello!

If you want to know in what operating system your program is running and its
version (eg. Windows 95, Windows NT 3.51, Windows NT 4.0), try the code
below which I adapted from MSDN to work with Delphi.

unit winversion;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormShow(Sender: TObject);
var Version : DWORD;
    Build : WORD;
    MajorVersion, MinorVersion : BYTE;
begin
  Version := GetVersion();
  { Get major and minor version numbers of Windows }
  MajorVersion := LOBYTE(LOWORD(Version));
  MinorVersion := HIBYTE(LOWORD(Version));
  { Get build numbers for Windows NT or Win32s }
  if (Version and $80000000) = 0 then begin { Windows NT }
    Memo1.Lines.Add('Windows NT');
    Build := HIWORD(Version);
  end
  else if (MajorVersion < 4) then begin { Win32s }
    Memo1.Lines.Add('Win32s');
    Build := HIWORD(Version) and $7FFF;
  end
  else begin
    Memo1.Lines.Add('Windows 95'); { Windows 95 -- No build numbers provided }
    Build := 0;
  end;
  Memo1.Lines.Add('Version '+IntToStr(MajorVersion)+'.'+IntToStr(MinorVersion));
  Memo1.Lines.Add('Build '+IntToStr(Build));
end;

end.

[Back to DELPHI SWAG index]  [Back to Main SWAG index]  [Original]