/*
系统信息
*系统版本
GetVersionEx
OSVERSIONINFOEX
*硬件信息
GetSystemInfo
SYSTEM_INO
*/
# include<stdio.h>
# include<windows.h>
#pragma warning(disable:4996)
void ShowVersionInfo();
int main()
{
ShowVersionInfo();
system("pause");
return 0;
}
void ShowVersionInfo()
{
OSVERSIONINFO ovex;
TCHAR szVersionInfo[1024] = TEXT("");
/*
typedef struct _OSVERSIONINFOW {
DWORD dwOSVersionInfoSize;//设为sizeof(OVERSIONINFO)
DWORD dwMajorVersion;//主版本
DWORD dwMinorVersion;//次版本
DWORD dwBuildNumber;//构建号
DWORD dwPlatformId;
WCHAR szCSDVersion[ 128 ]; //补丁 // Maintenance string for PSS usage
} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW;
*/
ovex.dwOSVersionInfoSize = sizeof(ovex);
//判断系统版本
if (!GetVersionEx(&ovex))
{
printf("error:%d\n", GetLastError());
return;
}
if (ovex.dwMajorVersion == 5) //主版本号如果是5就是Windows 2000
{ //5.1是Windows XP
if (ovex.dwMinorVersion == 0) //5.2是Windows Server 2003
lstrcat(szVersionInfo, TEXT("Windows 2000")); //主版本为6是Windows Vista
else if (ovex.dwMinorVersion == 1)
lstrcat(szVersionInfo, TEXT("Windows XP"));
else if (ovex.dwMinorVersion == 2)
lstrcat(szVersionInfo, TEXT("Windows Server 2003"));
}
else if (ovex.dwMajorVersion == 6)
lstrcat(szVersionInfo, TEXT("Windows Vista"));
else
lstrcat(szVersionInfo, TEXT("Windows NT 4.0或者其它"));
wprintf(L"%s\n", szVersionInfo);
printf("Windows %d.%d Build %d\n", ovex.dwMajorVersion, ovex.dwMinorVersion, ovex.dwBuildNumber);
wprintf(L"%s\n", ovex.szCSDVersion);
}
结果发现输出结果竟然是这样……令人大跌眼镜
明明是w10系统,怎么会是6.2呢,于是google得到了答案,以下是搜索到的
原来不是自己代码有问题,害得还怀疑是不是输出有错误,断点调试看了
下得到的版本还是6.2。。。。