有时候应项目要求,对不同的系统版本使用不同的处理方式,所以就需要进行系统的判断。
//添加此头文件
#include <Windows.h>
//判断系统是否是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");
}