我使用了
var
osver:OSVERSIONINFO  ;
begin
ZeroMemory(@osver,sizeof(OSVERSIONINFO));
osver.dwOSVersionInfoSize := sizeof(OSVERSIONINFO);
GetVersionEx(osver);
end;在 2K还XP 上  
主版本号  还有平台ID号都是一样的 请各老位老大如何解决这个问题  
如何知道操作系统是 XP 还是2K 

解决方案 »

  1.   

    Win32MajorVersion, Win32MinorVersion
    通过这2个就可以了,
    Format 一下,看看多大就知道,2k是5.0,xp是5.1
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      OSVI:OSVERSIONINFO;
    begin
        OSVI.dwOSversioninfoSize:=Sizeof(OSVERSIONINFO);
        GetVersionEx(OSVI);
        Memo1.Lines.Add(IntToStr(OSVI.dwMinorVersion));
        Memo1.Lines.Add(IntToStr(OSVI.dwMinorVersion));
        Memo1.Lines.Add(IntToStr(OSVI.dwBuildNumber));
        Memo1.Lines.Add(OSVI.szCSDVersion);
        Memo1.Lines.Add(IntToStr(OSVI.dwPlatformId));
        Case OSVI.dwPlatformId of
        VER_PLATFORM_WIN32S:
        Memo1.Lines.Add('VER_PLATFORM_WIN32S');
        VER_PLATFORM_WIN32_WINDOWS:
        Memo1.Lines.Add('VER_PLATFORM_WIN32_WINDOWS');
        VER_PLATFORM_WIN32_NT:
        Memo1.Lines.Add('VER_PLATFORM_WIN32_NT');
    end;
      

  3.   

    dwMajorVersion :
    Windows 2000 5 
    Windows XP 5 
    Windows Server 2003 family 5 
    dwMinorVersion :
    Windows 2000 0 
    Windows XP 1 
    Windows Server 2003 family 2
    引自MSDN