你查一查相关的 Win32 API

解决方案 »

  1.   

    typedef struct _OSVERSIONINFOEX {
      DWORD dwOSVersionInfoSize;
      DWORD dwMajorVersion;
      DWORD dwMinorVersion;
      DWORD dwBuildNumber;
      DWORD dwPlatformId;
      TCHAR szCSDVersion[ 128 ];
      WORD wServicePackMajor;
      WORD wServicePackMinor;
      WORD wSuiteMask;
      BYTE wProductType;
      BYTE wReserved;
    } OSVERSIONINFOEX, *POSVERSIONINFOEX, *LPOSVERSIONINFOEX;
    可以使用GetVersionEx ()和VerifyVersionInfo ()得到系统信息和比较系统是否适合要求
      

  2.   

    下面的函数可以得到文件的版本信息,注意,delphi做的程序,如果想
    包含版本信息, 必须在菜单"project/options/version info"里面
    添加版本信息.
    function GetVersion(filename:string):string;
    var
      InfoSize, Wnd: DWORD;
      VerBuf: Pointer;
      szName: array[0..255] of Char;
      Value: Pointer;
      Len: UINT;
      TransString:string;
    begin
      InfoSize := GetFileVersionInfoSize(PChar(FileName), Wnd);
      if InfoSize <> 0 then
      begin
        GetMem(VerBuf, InfoSize);
        try
          if GetFileVersionInfo(PChar(FileName), Wnd, InfoSize, VerBuf) then
          begin
            Value :=nil;
            VerQueryValue(VerBuf, '\VarFileInfo\Translation', Value, Len);
            if Value <> nil then
               TransString := IntToHex(MakeLong(HiWord(Longint(Value^)), LoWord(Longint(Value^))), 8);
            Result := '';
            StrPCopy(szName, '\StringFileInfo\'+Transstring+'\FileVersion');
                                                             ^^^^^^^此处换成ProductVersion得到的是"产品版本"
            if VerQueryValue(VerBuf, szName, Value, Len) then
               Result := StrPas(PChar(Value));
          end;
        finally
          FreeMem(VerBuf);
        end;
      end;
    end; 
      

  3.   


      直接使用以下系统全局变量
        Win32BuildNumber : Integer;   操作系统建立号(Build number)    Win32csdVersion : string;   系统附加信息,如NT的服务软件包(server pack)
        Win32MajorVersion : integer; 大版本号。 5表示Windows2000
      
        Win32MinorVersion : Integer; 小版本号。10表示Win98