Шаг 36 - GetVersion()

С Новым годом и веком !!!!!
31 декабля 2000 года 19.45 (+10 по Гринвичу +7 по Москве).

Возвращает эта функция версию и релиз номера Windows. В старшем слове код версии операционной системы.

DWORD GetVersion(VOID);

Реализована эта функция в Kernel32, а описана в Winbase.h. Код версии может принимать следующие значения.

VER_PLATFORM_WIN32s  		Win32s для Windows 3.1
VER_PLATFORM_WIN32_WINDOWS  	Windows 95/98
VER_PLATFORM_WIN32_NT  		Windows NT/2000

В младшем слове находится версия релиза. Извлекать их надо с помощью функций LOBYTE, HIBYTE, HIWORD. Давайте посмотрим пример.

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

void main() {
	DWORD dwVersion;
	DWORD dwWindowsMajorVersion;
	DWORD dwWindowsMinorVersion;
	DWORD dwBuild;
	dwVersion = GetVersion();
	dwWindowsMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
	dwWindowsMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion)));
	if (dwVersion < 0x80000000) 
	{
		dwBuild = (DWORD)(HIWORD(dwVersion));
		cout << "NT Build" << dwBuild << endl;
	}
	else 
	if (dwWindowsMajorVersion < 4){
		dwBuild = (DWORD)(HIWORD(dwVersion) & ~0x8000); 
		cout << "WIN32s Build " << dwBuild << endl; 
	} else {
		dwBuild=0;
		cout << "Win95/Win98 Build " << dwBuild << endl;
	}
}

На данный момент существует новая версия этой функции GetVersionEx().


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.