function Language:string;  
var  
  IdiomaID:LangID;  
  Idioma: array [0..100] of char;  
begin  
  IdiomaID:=GetSystemDefaultLangID;  
  VerLanguageName(IdiomaID,Idioma,100);  
  Result:=String(Idioma);  
end;  Win32Platform变量和GetVersionEx函数。Win32Platform=VER_PLATFORM_WIN32s: System is Win32s(Windows 3.1/3.2).
VER_PLATFORM_WIN32_WINDOWS: System is Windows 95/98/ME.
VER_PLATFORM_WIN32_NT: System is Windows NT/2000/XP. 

解决方案 »

  1.   

    TO liaokuo(辽阔):那是不是没有办法区分win95/98/me 和win2000/nt/xp了哦??
      

  2.   

    function GetOSInfo:string;
    var
      Platform: string;
      BuildNumber: Integer;
    begin
      case Win32Platform of
        VER_PLATFORM_WIN32_WINDOWS:
          begin
            Platform := 'Windows 95/98';
            BuildNumber := Win32BuildNumber and $0000FFFF;
          end;
        VER_PLATFORM_WIN32_NT:
          begin
            Platform := 'Windows NT';
            BuildNumber := Win32BuildNumber;
          end;
          else
          begin
            Platform := 'Windows';
            BuildNumber := 0;
          end;
      end;
      if (Win32Platform = VER_PLATFORM_WIN32_WINDOWS) or
        (Win32Platform = VER_PLATFORM_WIN32_NT) then
      begin
        if Win32CSDVersion = '' then
          Result := Format('%s %d.%d (Build %d)', [Platform, Win32MajorVersion,
            Win32MinorVersion, BuildNumber])
        else
          Result := Format('%s %d.%d (Build %d: %s)', [Platform, Win32MajorVersion,
            Win32MinorVersion, BuildNumber, Win32CSDVersion]);
      end
      else
        Result := Format('%s %d.%d', [Platform, Win32MajorVersion,
          Win32MinorVersion])
    end;