Этот пример должен работать на всех версиях 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) = falsedobegin
GetMem(lpos2, lpos^.dwOSVersionInfoSize + 1);
lpOs2^.dwOSVersionInfoSize := lpOs^.dwOSVersionInfoSize + 1;
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 TForm1.Button1Click(Sender: TObject);
var
Major: integer;
Minor: integer;
begin
GetWindowsVersion(Major, Minor);
Memo1.Lines.Add(IntToStr(Major));
Memo1.Lines.Add(IntToStr(Minor));
end;
Статья Как узнать версию Windows 2 раздела ОС и Железо Windows может быть полезна для разработчиков на Delphi и FreePascal.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.