我正在尝试使用Environment.OSVersion.Version
对象,并且无法确定哪个版本表明操作系统是Windows XP或更高版本(例如,我想要排除Windows 2000,ME或以前的版本)。 / p>
答案 0 :(得分:45)
使用System.OperatingSystem
对象,然后过滤Major&次要版本号。
我过去曾使用过这些功能:
static bool IsWinXPOrHigher()
{
OperatingSystem OS = Environment.OSVersion;
return (OS.Platform == PlatformID.Win32NT) && ((OS.Version.Major > 5) || ((OS.Version.Major == 5) && (OS.Version.Minor >= 1)));
}
static bool IsWinVistaOrHigher()
{
OperatingSystem OS = Environment.OSVersion;
return (OS.Platform == PlatformID.Win32NT) && (OS.Version.Major >= 6);
}
答案 1 :(得分:9)
检查Major
属性是否大于或等于5,如果为5则Minor
至少为1.(XP为5.1,2003为5.2,Vista / 2008为6.0)。< / p>
答案 2 :(得分:5)
您不应该检查版本号。相反,您应该检查所需的功能。如果它是你所追求的特定API,例如LoadLibrary和GetProcAddress,那么你就不依赖于版本号。