Возвращает эта функция версию и релиз номера 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(). |