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