Wednesday, March 15, 2006

Who Am I?

Who Am I?

#include <windows.h>

//
// Identify Windows Version
//

int __stdcall WinMain(HINSTANCE hPrevIntance, HINSTANCE hInstance, LPSTR lpCmdLine, int nCmdShow) {
OSVERSIONINFO vi = { sizeof(OSVERSIONINFO) };

// Versions
// VER_PLATFORM_WIN32_NT (PlatformId)
// (Major, Minor = Version)
// 5, 0 = Windows 2000
// 5, 1 = Windows XP
// 5, 2 = Windows 2003
// VER_PLATFORM_WIN32_WINDOWS
// 4, 0 = Windows 95
// 4, 10 = Windows 98
// 4, 90 = Windows ME
// VER_PLATFORM_WIN32s
// ???
//
// Additional Info is available using:
// ProductType: VER_NT_WORKSTATION, VER_NT_SERVER, VER_NT_DOMAIN_CONTROLLER
// wSuiteMask (Use '&' with the constants and check the boolean result; Standard, if none match):
// VER_SUITE_PERSONAL, VER_SUITE_ENTERPRISE, VER_SUITE_BLADE, VER_SUITE_DATACENTER

if (GetVersionEx(&vi)) {
if (vi.dwPlatformId == VER_PLATFORM_WIN32_NT) {
if (vi.dwMajorVersion==5 && vi.dwMinorVersion==0)
MessageBoxA(NULL, "Running Windows 2000", "Info", MB_OK);
else if (vi.dwMajorVersion==5 && vi.dwMinorVersion==1)
MessageBoxA(NULL, "Running Windows XP", "Info", MB_OK);
else if (vi.dwMajorVersion==5 && vi.dwMinorVersion==2)
MessageBoxA(NULL, "Running Windows 2003", "Info", MB_OK);
else
MessageBoxA(NULL, "Unidentified Win32 NT class OS", "Info", MB_OK);
} else if (vi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) {
if (vi.dwMajorVersion==4 && vi.dwMinorVersion==0)
MessageBoxA(NULL, "Running Windows 95", "Info", MB_OK);
else if (vi.dwMajorVersion==4 && vi.dwMinorVersion==10)
MessageBoxA(NULL, "Running Windows 98", "Info", MB_OK);
else if (vi.dwMajorVersion==4 && vi.dwMinorVersion==90)
MessageBoxA(NULL, "Running Windows Millennium Edition", "Info", MB_OK);
else
MessageBoxA(NULL, "Unidentified Win32 non-NT class OS", "Info", MB_OK);
} else if (vi.dwPlatformId == VER_PLATFORM_WIN32s) {
MessageBoxA(NULL, "Unidentified Win32 class OS", "Info", MB_OK);
} else {
MessageBoxA(NULL, "Unidentified OS", "Info", MB_OK);
}
} else {
MessageBoxA(NULL, "OS info not available!", "Error", MB_OK);
}

return 0;
}

0 Comments:

Post a Comment

<< Home