/* OS ¹öÀü ÆÇ´Ü Ŭ·¡½º */ //--------------------------------------------------------------------------- #ifndef COSVersionH #define COSVersionH //--------------------------------------------------------------------------- enum TOSVersion { osUnknown, // 0 osWin31, // 1 osWin95, // 2 osWin95OSR2, // 3 osWin9x, // 4 osWin98, // 5 osWin98SE, // 6 osWinME, // 7 osWinNT, // 8 osWinNT3, // 9 osWinNT4, // 10 osWin2000, // 11 osWinXP, // 12 osWin2003, // 13 osWinVista // 14 }; class COSVersion { protected: TOSVersion Get() { OSVERSIONINFO VersionInfo; TOSVersion Version = osUnknown; ZeroMemory(&VersionInfo, sizeof(OSVERSIONINFO)); VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&VersionInfo); switch(VersionInfo.dwPlatformId) { case VER_PLATFORM_WIN32_NT : switch(VersionInfo.dwMajorVersion) { case 3 : Version = osWinNT3; break; case 4 : Version = osWinNT4; break; case 5 : switch(VersionInfo.dwMinorVersion) { case 0 : Version = osWin2000; break; case 1 : Version = osWinXP; break; case 2 : Version = osWin2003; break; default: Version = osWinNT; break; } break; case 6 : Version = osWinVista; break; } break; case VER_PLATFORM_WIN32s : Version = osWin31; break; case VER_PLATFORM_WIN32_WINDOWS : switch(VersionInfo.dwMinorVersion) { case 0 : if (VersionInfo.szCSDVersion[1] == 'B') Version = osWin95OSR2; else Version = osWin95; break; case 10 : if (VersionInfo.szCSDVersion[1] == 'A') Version = osWin98SE; else Version = osWin98; break; case 90 : if (VersionInfo.dwBuildNumber == 73010104) Version = osWinME; else Version = osWin9x; break; } break; } return Version; } public: TOSVersion Version; public: COSVersion() { Version = Get(); } char *GetOSName() { static char *OS[] = { "Unknown OS", // 0 "Windows 3.1", // 1 "Windows 95", // 2 "Windows 95 OSR2", // 3 "Windows 9x", // 4 "Windows 98", // 5 "Windows 98 SE", // 6 "Windows ME", // 7 "Windows NT", // 8 "Windows NT3", // 9 "Windows NT4", // 10 "Windows 2000", // 11 "Windows XP", // 12 "Windows 2003", // 13 "Windows Vista" // 14 }; return OS[Version]; } }; //--------------------------------------------------------------------------- #endif