我正在尝试操作 Environment.OSVersion.Version
对象,但无法确定哪个版本表示操作系统为Windows XP或更高版本(例如,我想排除Windows 2000、ME或之前的版本)。
我正在尝试操作 Environment.OSVersion.Version
对象,但无法确定哪个版本表示操作系统为Windows XP或更高版本(例如,我想排除Windows 2000、ME或之前的版本)。
使用 System.OperatingSystem
对象,然后按主版本号和次版本号进行过滤。
我曾经使用过以下这些函数:
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);
}
检查Major
属性是否大于或等于5,并且如果为5,则Minor
至少为1。(XP为5.1,2003为5.2,Vista / 2008为6.0)。
您不应该检查版本号,而是应该检查您需要的功能。例如,如果您需要特定的API(如LoadLibrary和GetProcAddress),则可以使用它们 - 这样,您就不会依赖于版本号。