Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Версия Windows [D6, Win95/98, WinME, NT4, Win2k, WinXP]


ocean ©   (2002-10-21 19:44:00) 

Использую GetVersionEX, но не могу правильно распознать результат. Не подскажете, как это делается?


Vlad+   (2002-10-22 12:30:00) [1]

маленькие уточнения:

VER_PLATFORM_WIN32_WINDOWS:
Major = 4
Minor = 0 // 4.00[.950]
CSDVersion = "" => Windows 95 (original)
CSDVersion = "A" => Windows 95 SP1
CSDVersion = "B" => Windows 95 OSR2
Minor = 3 // 4.03[.12xx]
CSDVersion = "B" => Windows 95 OSR 2.1
CSDVersion = "C" => Windows 95 OSR 2.5
Minor = 10
Build = 1998 // 4.10.1998 => Windows 98 (original)
Build = 2222 // 4.10.2222 => Windows 98 Second Edition
Minor = 90 // 4.90.3000 => Windows Me

VER_PLATFORM_WIN32_NT:
Major = 5
Minor = 2 => Windows .NET Server

информация взята из MSDN


ocean   (2002-10-22 08:57:00) [2]

Спасибо!


Pat   (2002-10-21 21:45:00) [3]

Примерно так:

var data:OSVERSIONINFO;
Winda:string;
begin
data.dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);
GetVersionEx(data);
Winda:="Unknown";
case data.dwPlatformId of
VER_PLATFORM_WIN32s:Winda:="Windows 3.11";
VER_PLATFORM_WIN32_WINDOWS:
begin
if data.dwMajorVersion>=4 then
begin
if data.dwMinorVersion<10 then Winda:="Windows 95 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
data.szCSDVersion;
if data.dwMinorVersion>=10 then
if data.szCSDVersion[1]="A" then
Winda:="Windows 98 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
" SE"
else
Winda:="Windows 98 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
data.szCSDVersion;

if data.dwMinorVersion>=90 then Winda:="Windows ME "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
data.szCSDVersion;
end;
end;
VER_PLATFORM_WIN32_NT:
begin
if data.dwMajorVersion<=4 then Winda:="Windows NT "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
data.szCSDVersion;;
if data.dwMajorVersion=5 then
begin
if data.dwMinorVersion=0 then Winda:="Windows 2000 "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
data.szCSDVersion;;
if data.dwMinorVersion>=1 then Winda:="Windows XP "+
inttostr(data.dwMajorVersion)+"."+
inttostr(data.dwMinorVersion)+
data.szCSDVersion;;
end;
end;

end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо