Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2012, 16:42   #1
mihaker
Новичок
Джуниор
 
Регистрация: 01.07.2012
Сообщений: 9
По умолчанию Windows7 или XP

Как узнать из Delphi какая ОС стоит.
mihaker вне форума Ответить с цитированием
Старый 02.07.2012, 16:49   #2
elagin
Пользователь
 
Аватар для elagin
 
Регистрация: 26.05.2007
Сообщений: 64
По умолчанию

Код:
function CheckWindowsSeven: Integer;
var
  osVerInfo: TOSVersionInfo;
begin
  osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
  if GetVersionEx(osVerInfo) then
  begin
    with osVerInfo do
    begin
      if (dwMajorVersion = 6) and (dwMinorVersion = 1) and
        (dwBuildNumber >= 7600) then
        Result := 1
      else
        Result := 0;
    end;
  end
  else
    Result := -1
end;
Использование:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  case CheckWindowsSeven of
    - 1:
      Application.MessageBox('Не удалось определить версию Windows', '');
    0:
      Application.MessageBox('Windows Vista или ниже', '');
    1:
      Application.MessageBox('Windows 7 или Windows Server 2008 R2', '');
  end;
end;
elagin вне форума Ответить с цитированием
Старый 02.07.2012, 21:50   #3
QunneD
C++ & PHP & Asm
Форумчанин
 
Аватар для QunneD
 
Регистрация: 06.12.2008
Сообщений: 300
По умолчанию

Неоднократно обсуждалось.

Код:
var
  Os : OSVERSIONINFOA;
begin
  Os.dwOSVersionInfoSize := sizeof(Os);
  GetVersionEx(Os);
  if ((Os.dwMajorVersion = 6) and (Os.dwMinorVersion = 1)) then
  MessageBox(0, 'Windows 7', '', 0)
  else if ((Os.dwMajorVersion = 5) and (Os.dwMinorVersion = 1)) or ((Os.dwMajorVersion = 5) and (Os.dwMinorVersion = 2)) then
  begin
    if not (GetSystemMetrics(89) = 0) then // SM_SERVERR2
    begin
      MessageBox(0, 'Windows 2003', '', 0);
    end
    else
    begin
      MessageBox(0, 'Windows XP', '', 0);
    end;
  end;
end;
QunneD вне форума Ответить с цитированием
Старый 03.07.2012, 08:08   #4
mihaker
Новичок
Джуниор
 
Регистрация: 01.07.2012
Сообщений: 9
По умолчанию

Спасибо большое
mihaker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi на Windows7 kotaina Общие вопросы Delphi 5 03.02.2011 15:48
Ваше мнение: Что для российских школ лучше windows7 или ubuntu ubun Свободное общение 30 07.01.2011 21:05
windows7 taskbar moo2k Общие вопросы Delphi 0 30.07.2010 13:59
Стиль Windows7 Бутаков_Сергей Общие вопросы Delphi 6 04.04.2010 18:52
Справка Windows7 VadEr Windows 3 14.10.2009 12:25