loading
Computer/C, CPP, MFC Updated: 2015. 10. 2. 14:15

윈도우 버전 알아보기

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

Index


    댓글

    EIGHTBOX
    EIGHTBOX
    hwaya.

    programmer

    소소한 행동에 감동하며 기뻐하고 즐거워하는 그것에 감사하는 한 사람.

    Today6 Yesterday125 Total262,251
    최신글
    Project/TISTORY_SKIN
    티스토리 스킨을 새롭게 만들고 있다.
    2023.03.15 17:41
    STORY/창업이야기
    통신판매업신고 주의!! 알아보고 등록하자.
    2023.02.01 17:38
    Computer/Micro:bit
    마이크로비트란?
    2022.12.28 17:04
    STORY/창업이야기
    기업 구분
    2022.12.12 18:14
    Lost Time/Any Intelligence TEXT
    롱패딩 인기 요인 알아보기
    2022.12.06 13:46
    Lost Time/Any Intelligence TEXT
    블록체인의 위험성
    2022.12.05 18:56
    STORY/일상다반사
    사운드 오브 뮤직 유튜브 & 자막파일
    2022.12.05 14:13