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

我试图玩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)。

MSDN上的Windows版本号列表 。

你不应该检查版本号。 相反,你应该检查你需要的功能。 如果它是一个特定的API,例如,LoadLibrary和GetProcAddress它 – 这样,你就不依赖于版本号。