如何判断操作系统是Windows XP还是更高版本?

时间:2010-04-28 19:11:43

标签: c# windows .net-2.0 windows-xp version

我正在尝试使用Environment.OSVersion.Version对象,并且无法确定哪个版本表明操作系统是Windows XP或更高版本(例如,我想要排除Windows 2000,ME或以前的版本)。 / p>

3 个答案:

答案 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>

List of Windows Version Numbers on MSDN

答案 2 :(得分:5)

您不应该检查版本号。相反,您应该检查所需的功能。如果它是你所追求的特定API,例如LoadLibrary和GetProcAddress,那么你就不依赖于版本号。