Я пытаюсь играть с объектом Environment.OSVersion.Version
и не могу сказать, какая версия указывает, что ОС - Windows XP или выше (например, я хочу исключить Windows 2000, ME или предыдущие версии).
Как определить, является ли ОС Windows XP или выше?
Ответ 1
Используйте объект 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);
}
Ответ 2
Проверьте, что свойство Major
больше или равно 5, а если 5, то Minor
равно по меньшей мере 1. (XP было 5.1, 2003 - 5.2, Vista/2008 - 6.0).
Ответ 3
Вы не должны проверять номер версии. Вместо этого вы должны проверить, какие функции вам нужны. Если это конкретный API, который вы, например, загрузите, например LoadLibrary и GetProcAddress, то вы не зависите от номера версии.