web-dev-qa-db-ja.com

OSがWindows XP以上かどうかを見分ける方法は?

Environment.OSVersion.Versionオブジェクトで遊んでみましたが、OSがWindows XP以上であることを示すバージョンがわかりません(たとえば、Windows 2000、MEを除外したい)または以前のバージョン)。

26
AngryHacker

使用 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);
}
45
ParmesanCodice

Majorプロパティが5以上であることを確認し、5の場合、Minorは少なくとも1です(XPは5.1、2003は5.2、Vista/2008は6.0)。

MSDNのWindowsバージョン番号のリスト

9
Richard

バージョン番号を確認しないでください。代わりに、必要な機能を確認する必要があります。たとえば、LoadLibraryやGetProcAddressなどの特定のAPIを使用している場合は、バージョン番号に依存しません。

5
Stewart