由于项目需要判断Windows的操作系统版本,主要还是很多软硬件都有win7的不兼容性,所以需要进行判断。
关于如何判断系统版本的详细文章见MSDN:
http://msdn.microsoft.com/en-us/library/ms724429(v=VS.85).aspx
下面是我自己精简后的代码,代码在WindowsXP+VC6编译通过,并在WindowsXP 、Windows 7上测试通过:
bool isWin7()
{
OSVERSIONINFOEX osvi;
BOOL bOsVersionInfoEx;
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO*) &osvi);
// win7的系统版本为NT6.1
if ( VER_PLATFORM_WIN32_NT == osvi.dwPlatformId &&
osvi.dwMajorVersion == 6 &&
osvi.dwMinorVersion == 1 )
{
return true;
}
else
{
return false;
}
}
测试代码也很简单:
if (isWin7())
{
MessageBox("当前系统是Win7", "提示", MB_OK | MB_ICONINFORMATION);
}
else
{
MessageBox("当前系统不是Win7", "提示", MB_OK | MB_ICONINFORMATION);
}