请参考
function TCommunicationForm.MyGetVersion: String;
var
   VersionInfo : TOSVersionInfo;
   OSName      : String;
begin
  VersionInfo.dwOSVersionInfoSize := SizeOf( TOSVersionInfo );
  if Windows.GetVersionEx( VersionInfo ) then
  begin
    with VersionInfo do
    begin
      case dwPlatformId of
        VER_PLATFORM_WIN32s   : OSName := 'Win32s';
        VER_PLATFORM_WIN32_WINDOWS : OSName := 'Windows 95';
        VER_PLATFORM_WIN32_NT      : OSName := 'Windows NT';
      end;
      Result:=OSName+' Version '+IntToStr( dwMajorVersion )+'.'+IntToStr(dwMinorVersion)+#13#10' (Build ' + IntToStr(dwBuildNumber)+': '+szCSDVersion+')';
    end;
  end
  else
    Result:='';
end;

解决方案 »

  1.   

    OSVERSIONINFO info;
    info.dwOSVersion InfoSize=sizeof(info);
    switch(info.dwPlatformId)
    {
    case VER_PLATFORM_WIN32s
    case VER_PLATFORM_WINDOWS
    case VER_PLATFORM_WIN32_NT;
      

  2.   

    唉楼上的一定是CTRL+CCTRL+V了老兄我是一个字母一个字母的搞上去的唉慢半拍
      

  3.   

    :(
    还是没有判断win2000和NT的区别,我的目的主要是分清nt还是2000
      

  4.   

    to universe(晓宇)那个上面的不是给你代码了吗你仔细看看根据这些可以判断的:=OSName+' Version '+IntToStr( dwMajorVersion )+'.'+IntToStr(dwMinorVersion)+#13#10' (Build ' + IntToStr(dwBuildNumber)+': '+szCSDVersion+')';