Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Как определить версию Windows


Автор: VictorBondarenko 29.6.2005, 18:40
Уважаемые друзья!
Желая определить версию Windows, я написал такой код

Код

…
type
OSVERSIONINFO=record
    dwOSVersionInfoSize:DWORD ;
    dwMajorVersion:DWORD;
    dwMinorVersion:DWORD;
    dwBuildNumber:DWORD ;
    dwPlatformId:DWORD;
    szCSDVersion:array[1..128 ]of CHAR ;
                end;
…
var
…
lpVersionInformation: OSVERSIONINFOA;

…
begin
lpVersionInformation.dwOSVersionInfoSize:=Sizeof(OSVERSIONINFO);
GetVersionEx(lpVersionInformation );
memo1.Lines.Add('dwMajorVersion= '+inttostr(lpVersionInformation.dwMajorVersion));
memo1.Lines.Add('dwMinorVersion= '+inttostr(lpVersionInformation.dwMinorVersion));
memo1.Lines.Add('dwPlatformId= '+inttostr(lpVersionInformation.dwPlatformId));

…

Как интерпретировать результат в обычном виде: 98, 2000, МЕ, ХР
В своей "куцой" документации я этого не нашел.

Например у меня на компе
dwMajorVersion=5
dwMinorVersion=1
dwPlatformId=2 и в доке написано, что это платформа NT, а у меня на компе стоит ХР.


Помогите разобраться.
С благодарностью за помощь и внимание
Виктор

Автор: Quadr0 29.6.2005, 18:46
...

Автор: VictorBondarenko 29.6.2005, 18:57
Quadr0,
большое спасибо за код
это, похоже, как раз то, чего мне не хватало.

Сегодня попробую.

Автор: Yanis 29.6.2005, 20:21
To VictorBondarenko
FAQ - вот чего тебе действительно не хватало...

Автор: oleg1973 29.6.2005, 20:23
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProductName

оно и тут написано ) и даже там еше много чего написано )

Автор: Snowy 30.6.2005, 09:25
Я уже подробненько все расписывал. Вот:
http://forum.vingrad.ru/index.php?showtopic=41287&view=findpost&p=317020
Там есть простой и полный варианты.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)