Environment.OSVersion.Version
オブジェクトで遊んでみましたが、OSが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)。
バージョン番号を確認しないでください。代わりに、必要な機能を確認する必要があります。たとえば、LoadLibraryやGetProcAddressなどの特定のAPIを使用している場合は、バージョン番号に依存しません。