判断系统版本(win 7、win 10等)

有时候应项目要求,对不同的系统版本使用不同的处理方式,所以就需要进行系统的判断。

//添加此头文件
#include 

//判断系统是否是win7
SYSTEM_INFO info;		//用SYSTEM_INFO结构判断64位AMD处理器
GetSystemInfo(&info);   //调用GetSystemInfo填充结构
OSVERSIONINFOEX os;
os.dwOSVersionInfoSize=sizeof(OSVERSIONINFOEX);
if(GetVersionEx((OSVERSIONINFO*)&os))
{
	if(os.wProductType == VER_NT_WORKSTATION&&os.dwMajorVersion==6&&os.dwMinorVersion==1)
	{
		//win7
		Afxmessage("系统是win7");
	}
	else
	{
		//非win7
		Afxmessage("系统不是win7");
	}
}

//判断系统是否是win10
typedef void(__stdcall*NTPROC)(DWORD*, DWORD*, DWORD*);
HINSTANCE hinst = LoadLibrary("ntdll.dll");
DWORD dwMajor, dwMinor, dwBuildNumber;
NTPROC proc = (NTPROC)GetProcAddress(hinst, "RtlGetNtVersionNumbers"); 
proc(&dwMajor, &dwMinor, &dwBuildNumber); 
if (dwMajor == 10 && dwMinor == 0)	//win 10
{
	Afxmessage("系统是win10");
}

你可能感兴趣的:(c++)