如何以编程方式确定当前安装的Windows版本? 在区分vista和xp时。
答案 0 :(得分:6)
如果您使用的是Win32,则可以使用GetVersionEx API来识别操作系统。
答案 1 :(得分:2)
这里的直接问题是你想测试什么? check for features比比较版本号更好(因为Windows有各种缩减版本)。
VerifyVersionInfo将同时执行这两项操作,并且是比较主要/次要数字的推荐方法。
BOOL IsAtLeast2008DC() {
OSVERSIONINFOEX osvi = {0};
DWORDLONG mask = 0;
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
osvi.dwMajorVersion = 6;
osvi.dwMinorVersion = 0;
osvi.wServicePackMajor = 0;
osvi.wServicePackMinor = 0;
osvi.wProductType = VER_NT_DOMAIN_CONTROLLER;
VER_SET_CONDITION(mask, VER_MAJORVERSION, VER_GREATER_EQUAL);
VER_SET_CONDITION(mask, VER_MINORVERSION, VER_GREATER_EQUAL);
VER_SET_CONDITION(mask, VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL);
VER_SET_CONDITION(mask, VER_SERVICEPACKMINOR, VER_GREATER_EQUAL);
VER_SET_CONDITION(mask, VER_SERVICEPACKMINOR, VER_GREATER_EQUAL);
VER_SET_CONDITION(mask, VER_PRODUCT_TYPE, VER_EQUAL);
return VerifyVersionInfo(&osvi,
VER_MAJORVERSION | VER_MINORVERSION |
VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR |
VER_PRODUCT_TYPE,
mask
);
}
要测试Vista或更高版本,请删除提及产品类型的行。您会找到更多示例here,但请注意您要检查的内容。