Главная страница
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.045 c
15-1169982180
Ломброзо
2007-01-28 14:03
2007.02.18
Воскресные задачки (для воскресной школы)


15-1169634716
Ega23
2007-01-24 13:31
2007.02.18
знатоки Sybase PowerDesigner - отзовитесь!


2-1170416926
Garacio
2007-02-02 14:48
2007.02.18
Как в Delphi получить букву системного диска?


2-1170097733
Riply
2007-01-29 22:08
2007.02.18
Использование Result - как переменной в функции.


2-1170100189
Romeo12
2007-01-29 22:49
2007.02.18
помогите пожалуйста