Подтвердить что ты не робот

Как определить, является ли ОС Windows XP или выше?

Я пытаюсь играть с объектом Environment.OSVersion.Version и не могу сказать, какая версия указывает, что ОС - Windows XP или выше (например, я хочу исключить Windows 2000, ME или предыдущие версии).

4b9b3361

Ответ 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);
}

Ответ 3

Вы не должны проверять номер версии. Вместо этого вы должны проверить, какие функции вам нужны. Если это конкретный API, который вы, например, загрузите, например LoadLibrary и GetProcAddress, то вы не зависите от номера версии.