Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.18;
Скачать: CL | DM;

Вниз

Как узнать версию ОС с точностью до SP   Найти похожие ветки 

 
Garacio ©   (2007-01-27 16:23) [0]

Как узнать версию операционной системы с точностью до SP?
Так, чтобы можно было:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if GetOSVersion = osXP SP2
  then begin
    ...
  end;
end;


 
FAskerQ ©   (2007-01-27 18:06) [1]


> Garacio ©   (27.01.07 16:23)
> Как узнать версию операционной системы с точностью до SP?
>


function GetOSVersion: string;
var
 OSVersionInfo: TOSVersionInfo;
 s: string;
begin
 Result:= "";
 OSVersionInfo.dwOSVersionInfoSize:= SizeOf(TOSVersionInfo);
 if GetVersionEx(OSVersionInfo) then
 begin
   with OSVersionInfo do
   case dwPlatformId of
   VER_PLATFORM_WIN32_WINDOWS:
     if dwMinorVersion = 0 then
       s:= "Windows 95"
     else
       s:= "Windows 98";
   VER_PLATFORM_WIN32_NT:
     begin
       if OSVersionInfo.dwMajorVersion = 5 then
       begin
         if OSVersionInfo.dwMinorVersion = 0 then
           s:= "Windows 2000"
         else
           s:= "Windows XP";
       end;
       if OSVersionInfo.dwMinorVersion = 90 then
          s:= "Windows Me";
       if OSVersionInfo.dwMajorVersion = 4 then
         s:= "Windows NT 4.0";
       if OSVersionInfo.dwMajorVersion = 3 then
         s:= "Windows NT 3.51";
     end;
   VER_PLATFORM_WIN32s:
     s:= "Win 3.1 with Win32s"
   end;
   Result:= s + " " + OSVersionInfo.szCSDVersion;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Caption:= GetOSVersion;
end;


Не знаю будет ли работать правильно во всех ОС...


 
oxffff ©   (2007-01-27 18:06) [2]

GetVersionEx

typedef struct _OSVERSIONINFOEX
{  DWORD dwOSVersionInfoSize;  DWORD dwMajorVersion;  DWORD dwMinorVersion;  DWORD dwBuildNumber;  DWORD dwPlatformId;  TCHAR szCSDVersion[128];  

WORD wServicePackMajor;  WORD wServicePackMinor;  

WORD wSuiteMask;  BYTE wProductType;  BYTE wReserved;
} OSVERSIONINFOEX,


 
Garacio ©   (2007-01-27 18:26) [3]

Т.е.:

type
wServicePackMajor: DWORD;
wServicePackMinor: DWORD;

procedure GetWindowsVersion(var Major: integer;
var Minor: integer);
begin
...



Страницы: 1 вся ветка

Текущий архив: 2007.02.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
2-1170249970
Riply
2007-01-31 16:26
2007.02.18
Посылка в нить указателя на выделенную память.


2-1170357940
ZiTRaX
2007-02-01 22:25
2007.02.18
Ошибка при работе с директивой absolute


2-1170070143
Квэнди
2007-01-29 14:29
2007.02.18
Регистрация нового протокола


2-1170281370
Pasha L
2007-02-01 01:09
2007.02.18
прочитать ответ GETа (tidtcpclient)


2-1170354770
Jeeb
2007-02-01 21:32
2007.02.18
Номенклатурная база данных