我试图玩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它 – 这样,你就不依赖于版本号。