【发布时间】:2011-02-13 12:23:31
【问题描述】:
我正在尝试使用 Environment.OSVersion.Version 对象,但无法确定哪个版本会表明操作系统是 Windows XP 或更高版本(例如,我想排除 Windows 2000、ME 或以前的版本)。
【问题讨论】:
标签: c# windows .net-2.0 windows-xp version
我正在尝试使用 Environment.OSVersion.Version 对象,但无法确定哪个版本会表明操作系统是 Windows XP 或更高版本(例如,我想排除 Windows 2000、ME 或以前的版本)。
【问题讨论】:
标签: c# windows .net-2.0 windows-xp version
使用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 - 这样,您就不会依赖于版本号。
【讨论】: