利用下面这个函数取得系统的类型,但问题在于如果使用windows7系统,再使用Delphi7该结果为windows xp,而不是Windows 7 ,如果使用Delphi 2010则结果正确(因为某些原因要使用Delphi7进行编译)
想知道为什么会出错,或是有其它解决方法
..........................  
  var
    AWin32Version: Extended;
    os:string;
begin
  os:='Windows ';
  AWin32Version := StrtoFloat(format('%d.%d' ,[Win32MajorVersion, Win32MinorVersion]));//Delphi7:5.1 Delphi2010:6.1
  if Win32Platform=VER_PLATFORM_WIN32s then
    Result := os + '32'
  else if Win32Platform=VER_PLATFORM_WIN32_WINDOWS then
  begin
    if AWin32Version=4.0 then
      Result := os + '95'
    else if AWin32Version=4.1 then
      Result := os + '98'
    else if AWin32Version=4.9 then
      Result := os + 'Me'
    else
      Result := os + '9x'
  end
  else if Win32Platform = VER_PLATFORM_WIN32_NT then
  begin
    if AWin32Version=3.51 then
      Result := os + 'NT 3.51'
    else if AWin32Version=4.0 then
      Result := os + 'NT 4.0'
    else if AWin32Version=5.0 then
      Result := os + '2000'
    else if AWin32Version=5.1 then
      Result := os + 'XP'
    else if AWin32Version=5.2 then
      Result := os + '2003'
    else if AWin32Version=6.0 then
      Result := os + 'Vista'
    else if AWin32Version=6.1 then
      Result := os + '7'
    else
      Result := os ;
  end
  else
    Result := os + '??';
end;