用GetVersionEx()和VersionVerify()这两个函数就成了。

解决方案 »

  1.   

    在GetVersionEx函数中的OSVERSIONINFO参数中,如果dwPlatformId 为VER_PLATFORM_WIN32_NT说明系统是NT类的,如果dwMajorVersion为5,是win2000,为4,是nt4,为3,是nt3.51
      

  2.   

    OSVERSIONINFO osinfo;
    osinfo.dwOSVersionInfoSize =sizeof(OSVERSIONINFO);
    GetVersionEx (&osinfo);
    switch(osinfo.dwPlatformId)
    {
    case VER_PLATFORM_WIN32s://Win32s on Windows 3.1.
    {
    //Win3.1
    m_strOsVersion=_T("Win3.2");
    break;
    }
    case VER_PLATFORM_WIN32_WINDOWS://Windows 95, Windows 98, or Windows Me. 
    {
    switch(osinfo.dwMinorVersion)
    {
    case 0: //Win95
    m_strOsVersion=_T("Win95");
    break;
    case 10://Win98
    m_strOsVersion=_T("Win98");
    break;
    case 90://WinMe
    m_strOsVersion=_T("WinMe");
    break;
    }
    break;
    }
    case VER_PLATFORM_WIN32_NT://Windows NT 3.51, Windows NT 4.0, Windows 2000, or Whistler
    {
    switch(osinfo.dwMinorVersion)
    {
    case 51://WinNT3.51
    m_strOsVersion=_T("WinNT3.51");
    break;
    case 0:
    {
    switch(osinfo.dwMajorVersion)
    {
    case 4://WinNT4
    m_strOsVersion=_T("WinNT4.0");
    break;
    case 5://Win2000
    m_strOsVersion=_T("Win2000");
    break;
    }
    break;
    }
    case 1://Whistler
    m_strOsVersion=_T("Whistler");
    break;
    }
    break;
    }
    }