怎样判断是9X还是2K

解决方案 »

  1.   

    如下,或者你直接查找注册表相应键值。
    然后,你要
    给分!
    function myGetVersion: shortString;
    var
       VersionInfo : TOSVersionInfo;
       OSName      : String;
    begin
       // set the size of the record
       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; // case dwPlatformId
                Result := OSName + ' Version ' + IntToStr( dwMajorVersion ) + '.' + IntToStr( dwMinorVersion ) +
                          #13#10' (Build ' + IntToStr( dwBuildNumber ) + ': ' + szCSDVersion + ')';
             end; // with VersionInfo
          end // if GetVersionEx
       else
          Result := '';
    end;
      

  2.   

    type
      TOSVersionRec = record         // 操作系统版本参数类型
        OsName: string;              // 操作系统名称
        OsMajorVersion: cardinal;    // 操作系统主版本号
        OsMinorVersion: cardinal;    // 操作系统次版本号
      end;
    // 得到操作系统版本参数
    // 返回: 操作系统版本参数(记录类型)
    function GetOsVersion: TOSVersionRec;
    var
      OS : TOsVersionInfo;
    begin
      Os.dwOSVersionInfoSize := SizeOf(OS);
      GetVersionEx(@OS);
      with result do begin
        OsMajorVersion := Os.dwMajorVersion;
        OsMinorVersion := Os.dwMinorVersion;
        case Os.dwPlatformId of
          VER_PLATFORM_WIN32s :
            OsName := 'Microsoft Windows 3.1x/32s';
          VER_PLATFORM_WIN32_WINDOWS :
            if (OsMajorVersion = 4) and (OsMinorVersion > 0) then
              OsName := 'Microsoft Windows 98'
            else
              OsName := 'Microsoft Windows 95';
          VER_PLATFORM_WIN32_NT :
            if OsMajorVersion = 5 then
              if OsMinorVersion > 0 then OsName := 'Microsoft Windows XP'
              else OsName := 'Microsoft Windows 2000'
            else
              OsName := 'Microsoft Windows NT';
        else
          OsName := 'UnKnow System';
        end;
      end;
    end;
      

  3.   

    很简单了,一个函数搞定:
    if win32platform=ver_platform_win32_nt then
      ...2000
    else
      ...98;
    给分吧!