【发布时间】:2012-12-03 10:07:30
【问题描述】:
可能重复:
How do I determine if a computer is running XP Service pack 3
有大量的 C++ 代码说明了如何检查操作系统是 Windows XP,但我需要知道它是否至少是 Windows XP SP3。有什么办法吗?
【问题讨论】:
-
重复?是的,但看在上帝的份上,不要像某些答案建议的那样使用注册表。
-
再一次,正如我在
szCSDVersion下面发布的那样,它提供了一个字符串版本的 Service Pack,可以用于显示目的,但没有明确指示如何确定它是否真的是 SP3。跨度> -
所以,你这样做的方式是调用
GetVersionEx传递OSVERSIONINFOEX。然后查看dwMajorVersion和dwMinorVersion。如果它> 5.1,你很好。它 == 5.1,那么您使用的是 XP 并且必须检查 SP。查看wServicePackMajor并与3进行比较。 -
在测试 SP3 时,您还需要考虑 server 2003。即 5.2 版。但服务器 2003 的早期版本早于 XP SP3。这就是为什么您应该测试功能是否可用而不是进行版本检查的原因之一。
-
我会测试您需要的特定功能。是什么推动了对 SP3 而不是 SP2 的需求?测试它是什么。
标签: c++ windows winapi version windows-xp-sp3