public static string GetOSName()
        {
            _OSVERSIONINFOEX osVersionInfo = new _OSVERSIONINFOEX();

            osVersionInfo.dwOSVersionInfoSize = 156;

            if (GetVersionEx(ref osVersionInfo))
            {
                switch (osVersionInfo.dwMajorVersion)
                {
                case 5:
                    switch (osVersionInfo.dwMinorVersion)
                    {
                    case 0:
                        return("Microsoft Windows 2000");

                    case 1:
                        return("Microsoft Windows XP");

                    case 2:
                        if ((osVersionInfo.wSuiteMask & 0x00008000) != 0)
                        {
                            return("Microsoft Windows Home Server");
                        }
                        if (osVersionInfo.wProductType == 1 && CheckOSBitness.Is64BitOperatingSystem())
                        {
                            return("Microsoft Windows XP");
                        }
                        if (GetSystemMetrics(89) == 0)
                        {
                            return("Microsoft Windows Server 2003");
                        }
                        else
                        {
                            return("Microsoft Windows Server 2003 R2");
                        }
                    }
                    break;

                case 6:
                    switch (osVersionInfo.dwMinorVersion)
                    {
                    case 0:
                        if (osVersionInfo.wProductType == 1)
                        {
                            return("Microsoft Windows Vista");
                        }
                        else
                        {
                            return("Microsoft Windows Server 2008");
                        }

                    case 1:
                        if (osVersionInfo.wProductType == 1)
                        {
                            return("Microsoft Windows 7");
                        }
                        else
                        {
                            return("Microsoft Windows Server 2008 R2");
                        }

                    default:
                        return("The later version of Microsoft Windows Vista");
                    }
                    break;
                }
            }
            return(null);
        }
 public static extern bool GetVersionEx(ref _OSVERSIONINFOEX osVersionInfo);