Определяем версию Windows в Delphi

{$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 + 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;
Kwork.ru - услуги фрилансеров от 500 руб.
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (11 оценок, среднее: 5,00 из 5)
Загрузка...
Добавить комментарий