Jef*_*eff 9 c++ windows-xp version windows-vista windows-7
在项目上工作,需要能够确定操作系统是Windows 7,Vista还是默认为XP.我知道我可能遇到Win2K和早期版本,但我们只是说这不是一个问题,因为其他代码会在它到达这一点之前捕获它.我的应用程序将在C++中暂时使用VS2005.我发现文章和示例代码相似,但它们似乎对我的用途臃肿.只是寻找一个快速和肮脏的回报.
http://msdn.microsoft.com/en-us/library/ms724358%28VS.85%29.aspx
Pau*_*tos 19
Windows版列表,使用GetVersionEx
:
Version Number Description
6.1 Windows 7 / Windows 2008 R2
6.0 Windows Vista / Windows 2008
5.2 Windows 2003
5.1 Windows XP
5.0 Windows 2000
Run Code Online (Sandbox Code Playgroud)
Chr*_*isV 18
通常,您不希望针对特定版本号进行测试,而是检查特定功能.如果你真的想要检测"Windows 7或更高版本",但是......
#include <windows.h>
bool IsWin7OrLater() {
DWORD version = GetVersion();
DWORD major = (DWORD) (LOBYTE(LOWORD(version)));
DWORD minor = (DWORD) (HIBYTE(LOWORD(version)));
return (major > 6) || ((major == 6) && (minor >= 1));
}
Run Code Online (Sandbox Code Playgroud)
对于2000,分别将major和minor与5和0进行比较.对于XP,比较5和1.对于Vista,6和0.
Windows 8.1 SDK 1)引入了许多版本帮助函数,这些函数有助于确定应用程序运行的操作系统版本:
#include <VersionHelpers.h>
...
if ( IsWindows7OrGreater() ) {
// Windows 7 or above
} else if ( IsWindowsVistaOrGreater() ) {
// Windows Vista
} else if ( IsWindowsXPOrGreater() ) {
// Windows XP
} else {
// Unsupported version of Windows
}
Run Code Online (Sandbox Code Playgroud)
如果您需要区分 Windows 的客户端和服务器版本,您可以调用IsWindowsServer。