Project Options的Version Info里有build number的
我想像其它软件那样,在运行时显示当前的build number,应该如何实现?

解决方案 »

  1.   

    读取主版本号,此版本号,..., Build号,然后组合成字符串即可function TFormAbout.GetVersion(filename: string): string;
    var
      InfoSize, Wnd: DWORD;
      VerBuf: Pointer;
      szName: array[0..255] of Char;
      Value: Pointer;
      Len: UINT;
      TransString:string;
    begin
      //filename := 'D:\SFClient.dll';
      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');
            if VerQueryValue(VerBuf, szName, Value, Len) then
               Result := StrPas(PChar(Value));
          end;
        finally
          FreeMem(VerBuf);
        end;
      end;
    end;抄自 http://expert.csdn.net/Expert/topic/1574/1574188.xml?temp=.7804224
    (dolemin(骏驰) )