Delphi32.com - Home!
| Home/News | Downloads | Forums | D32 Magazine | Resources | Info and Facts |  
 
 Getting the Windows version in code?


How do I retrieve the Windows version in code?   

    Here is an example that should work under all versions of Windows.

    {$IFDEF WIN32}
    function GetVersionEx(lpOs : pointer) : BOOL; stdcall;
     external 'kernel32' name 'GetVersionExA';
    {$ENDIF}
    procedure GetWindowsVersion(var Major : integer;
                                var Minor : integer);
    var
     {$IFDEF WIN32}
      lpOS, lpOS2 : POsVersionInfo;
     {$ELSE}
      l : longint;
     {$ENDIF}
    begin
     {$IFDEF WIN32}
       GetMem(lpOS, SizeOf(TOsVersionInfo));
       lpOs^.dwOSVersionInfoSize := SizeOf(TOsVersionInfo);
       while getVersionEx(lpOS) = false do begin
         GetMem(lpos2, lpos^.dwOSVersionInfoSize +  );
         lpOs2^.dwOSVersionInfoSize := lpOs^.dwOSVersionInfoSize +  ;
         FreeMem(lpOs, lpOs^.dwOSVersionInfoSize);
         lpOS := lpOs2;
       end;
       Major := lpOs^.dwMajorVersion;
       Minor := lpOs^.dwMinorVersion;
       FreeMem(lpOs, lpOs^.dwOSVersionInfoSize);
     {$ELSE}
      l := GetVersion;
      Major := LoByte(LoWord(l));
      Minor := HiByte(LoWord(l));
     {$ENDIF}
    end;
    procedure TForm .Button Click(Sender: TObject);
    var
      Major : integer;
      Minor : integer;
    begin
      GetWindowsVersion(Major, Minor);
      Memo .Lines.Add(IntToStr(Major));
      Memo .Lines.Add(IntToStr(Minor));
    end;
    

     



  << Previous Faq     Complete List     Next Faq >>  



 
 Hits/month  2,500,000+ 
 Downloads
 (Since May 2000)
 7,393,709 
 Total Files  6,023 
 Forum msgs  7,670 
 Articles/FAQs  70+/900+ 
Kylix
Tips n Tricks
FAQs
Knowledge Base
Bug Listings
Articles
Books
Newsgroups
Links
Submissions
Testimonials
Advertising
Contact Us
About Us
Search Amazon:
Top Selling Software at Amazon

| Home/News | Downloads | Forums | Resources | Info and Facts | Testimonials |
  Site Search:
 


Comments/Problems: Webmaster@delphi32.com
Copyright © 1998-2006, Delphi32.com. All rights reserved.
Terms of Use