I have a program which returns the OS version.
If run on a Windows 10
, it detects it as as Windows 8|8.1
.
public string GetWindwosClientVersion() //Get OS Version and if 64 or 32 bit
{
int major = System.Environment.OSVersion.Version.Major;
int minor = System.Environment.OSVersion.Version.Minor;
int build = System.Environment.OSVersion.Version.Build;
string bit;
if (System.Environment.Is64BitOperatingSystem == true) //get 64 or 32 bit
{
bit = " 64bit";
}
else
{
bit = " 32bit";
}
if (major == 4 && minor == 0 && build == 950)
return "Win95 Release 1" + bit;
else if (major == 4 && minor == 0 && build == 1111)
return "Win95 Release 2" + bit;
else if (major == 4 && minor == 3 && (build == 1212 || build == 1213 || build == 1214))
return "Win95 Release 2.1" + bit;
else if (major == 4 && minor == 10 && build == 1998)
return "Win98" + bit;
else if (major == 4 && minor == 10 && build == 2222)
return "Win98 Second Edition" + bit;
else if (major == 4 && minor == 90)
return "WinMe" + bit;
else if (major == 5 && minor == 0)
return "Win2000" + bit;
else if (major == 5 && minor == 1 && build == 2600)
return "WinXP" + bit;
else if (major == 6 && minor == 0)
return "Vista" + bit;
else if (major == 6 && minor == 1)
return "Win7" + bit;
else if (major == 6 && minor == 2 && build == 9200)
return "Win8 | Win8.1" + bit;
else if (major == 6 && minor == 2 && build == 9600)
return "Win8.1 Update 1" + bit;
else if (major == 10 && minor == 0 && build == 10240)
return "Win10" + bit;
else
return "Can not find OS version.";
}
In other codes I see that Windows 10 should be major == 10
but it seems to be major == 6 && minor == 2 && build == 9200
.
With Windows 7 it works fine.
Because I don't use VS 2015 and can't update the client to Windows 8.1 SDK
, the IsWindows10OrGreater
solution in the old question doesn't work for me!