Computer/C, CPP, MFC
Updated: 2015. 10. 2. 14:15
hwaya.
윈도우 버전 알아보기
반응형
int GetWindowsType(void)
{
/*
return value :
-1 : 버전얻기 실패
1 : Windows 95,
2 : Windows 98,
3 : Windows ME,
4 : Windows NT,
5 : Windows 2000,
6 : Windows XP,
7 : Windows 2003,
8 : Windows Vista, 2008
9 : Windows 7, 2008 R2
10: Windows 10,
*/
int nVersion = -1;
OSVERSIONINFOEX osvi = { 0, };
BOOL version_ex_flag = 0;
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if (!(version_ex_flag = GetVersionEx((OSVERSIONINFO *)&osvi)))
{
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if (!GetVersionEx((OSVERSIONINFO *)&osvi))
return -1;
}
switch (osvi.dwPlatformId)
{
case VER_PLATFORM_WIN32_WINDOWS: // 윈도우즈 9x 기반의 운영체제인 경우
{
if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0)
{
nVersion = 1; // Windows 95
}
else if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 10)
{
nVersion = 2; // Windows 98
}
else if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90)
{
nVersion = 3; // Windows ME
}
}
break;
case VER_PLATFORM_WIN32_NT: // NT 기술 기반의 운영체제인 경우
{
if (osvi.dwMajorVersion <= 4)
{
nVersion = 4; // Windows NT
}
else if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0)
{
nVersion = 5; //Windows 2000
}
else if (version_ex_flag)
{
if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1)
{
nVersion = 6; // Windows XP
}
else if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2)
{
nVersion = 7; // Windows 2003
}
else if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0)
{
nVersion = 8; // Windows Vista, 2008
}
else if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 1)
{
nVersion = 9; // Windows7, 2008 R2
}
else if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 2)
{
nVersion = 10; // Windows10
}
}
}
break;
}
return nVersion;
}
반응형
'Computer > C, CPP, MFC' 카테고리의 다른 글
ReadFile() (0) | 2015.12.04 |
---|---|
SetFilePointer() (0) | 2015.12.04 |
프로그램 종료 (0) | 2015.10.13 |
하위폴더까지 전체 복사하기 (0) | 2015.10.02 |
Windows Styles (0) | 2015.06.15 |
timeSetEvent 와 친구들 (0) | 2015.06.02 |
PeekMessage (0) | 2014.03.26 |
Printf 함수에 대해서 알아보자 (0) | 2011.07.13 |