Познавательный блог Мобильная врсия

Страницы

Промо

Как определить версию ОС Windows на C++

Как определить версию ОС Windows на C++. Новая реализация функции получения версии системы GetVersionEx():

BOOL GetVersionEx
(
LPOSVERSIONINFO lpVersionInfo // указатель на структуру,
//в которую будет получена информация.
);

А вот и структура :-)

typedef struct _OSVERSIONINFO
{
DWORD dwOSVersionInfoSize; // размер структуры
DWORD dwMajorVersion; // идентификатор операционной системы
DWORD dwMinorVersion; // идентификатор версии
DWORD dwBuildNumber; // идентификатор сборки
DWORD dwPlatformId; // платформа
TCHAR szCSDVersion[128]; // дополнительная информация об операционной системе
} OSVERSIONINFO;

Перед использованием этой функции надо указать размер структуры в параметре dwOSVersionInfoSize используя sizeof(OSVERSIONINFO).

#include "stdafx.h"
#include "windows.h"
#include "iostream.h"

void main()
{
OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx((OSVERSIONINFO*)&osvi);
}

Пример программки:

#pragma hdrstop
#include <windows.h>
#include <iostream.h.h>
#pragma argsused

int main(int argc, char* argv[])
{
OSVERSIONINFO os;
os.dwOSVersionInfoSize = sizeof(os);
GetVersionEx(&os);

if (os.dwPlatformId == 2 && os.dwMajorVersion == 5 && os.dwMinorVersion==2)
cout<<"Microsoft Windows 2003 Enterprise Edition";
if (os.dwPlatformId == 1 && os.dwMajorVersion == 4 && os.dwMinorVersion==0)
cout<<"Microsoft Windows 95";
if (os.dwPlatformId == 1 && os.dwMajorVersion == 4 && os.dwMinorVersion==10)
cout<<"Microsoft Windows 98";
if (os.dwPlatformId == 2 && os.dwMajorVersion == 3 && os.dwMinorVersion==51)
cout<<"Microsoft Windows WinNT351";
if (os.dwPlatformId == 2 && os.dwMajorVersion == 4 && os.dwMinorVersion==0)
cout<<"Microsoft Windows WinNT4";
else cout<<endl<<os.dwPlatformId<<" / "<<os.dwMajorVersion<<" / "<<os.dwMinorVersion<<endl;
getchar();
}

Написать комментарий








Поиск по сайту

Статистика

Мета

  Разработка и дизайн — StvPromo.ru