// GetOSVersion.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//
#include "stdafx.h"
#include "Windows.h"
#include
#define PLATFORM_ID 0
#define MAJOR_VERSION 1
#define MINOR_VERSION 2
#define BUILD_NUMBER 3
#define HELP 4
#define SYNTAX_ERROR -1
int _tmain(int argc, _TCHAR* argv[])
{
OSVERSIONINFOA OsVersionInfo;
OsVersionInfo.dwOSVersionInfoSize = sizeof( OsVersionInfo );
GetVersionExA( &OsVersionInfo );
int resultType = SYNTAX_ERROR;
if(*++argv != NULL)
{
if(**argv == '/')
{
std::string command = (*argv+1);
if(command.compare(_T("Platform")) == 0)
{
resultType = PLATFORM_ID;
}
else if(command.compare(_T("Major")) == 0)
{
resultType = MAJOR_VERSION;
}
else if(command.compare(_T("Minor")) == 0)
{
resultType = MINOR_VERSION;
}
else if(command.compare(_T("Build")) == 0)
{
resultType = BUILD_NUMBER;
}
else if(command.compare(_T("?")) == 0)
{
resultType = HELP;
}
}
}
else
{
resultType = PLATFORM_ID;
}
int resultCode = 0;
switch(resultType)
{
case HELP:
std::cout
<< "GetOsVersion : OSのバージョンを取得します。" << std::endl
<< "/? : このメッセージの表示。" << std::endl
<< "/Platform : プラットフォームIDを取得。" << std::endl
<< "/Major : メジャーバージョンを取得。" << std::endl
<< "/Minor : マイナーバージョンを取得。" << std::endl
<< "/Build : ビルドナンバーを取得。" << std::endl;
return 0;
case PLATFORM_ID:
resultCode = OsVersionInfo.dwPlatformId;
break;
case MAJOR_VERSION:
resultCode = OsVersionInfo.dwMajorVersion;
break;
case MINOR_VERSION:
resultCode = OsVersionInfo.dwMinorVersion;
break;
case BUILD_NUMBER:
resultCode = OsVersionInfo.dwBuildNumber;
break;
default:
std::cout
<< "オプションが不正です。" << std::endl << std::endl
<< "GetOsVersion : OSのバージョンを取得します。" << std::endl
<< "/? : このメッセージの表示。" << std::endl
<< "/Platform : プラットフォームIDを取得。" << std::endl
<< "/Major : メジャーバージョンを取得。" << std::endl
<< "/Minor : マイナーバージョンを取得。" << std::endl
<< "/Build : ビルドナンバーを取得。" << std::endl;
return -1;
}
std::cout << "Platform is "
<< (OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS ? "Windows" : "WinNT")
<< ", MajorVersion = " << OsVersionInfo.dwMajorVersion
<< ", MinorVersion = " << OsVersionInfo.dwMinorVersion
<< ", BuildNumber = " << OsVersionInfo.dwBuildNumber << std::endl;
return resultCode;
}