获取一个文件的版本信息

页面导航:首页 > 软件编程 > Delphi > 获取一个文件的版本信息

获取一个文件的版本信息

来源: 作者: 时间:2016-01-18 15:41 【

function ReadVersionInfo:string;type Translate=record wLanguage:WORD; wCodePage:WORD; end; lpTranslate=^Translate;var AppFileName,RequestInfo:string; VersionInfoSize,varDummy,VersionSize,c...

function ReadVersionInfo:string; 
type 
   Translate=record 
     wLanguage:WORD; 
     wCodePage:WORD; 
   end; 
   lpTranslate=^Translate; 
 
var 
  AppFileName,RequestInfo:string; 
  VersionInfoSize,varDummy,VersionSize,cbTranslate:Cardinal; 
  VersionInfo,pVersion:PAnsiChar; 
  pTranslate:lpTranslate; 
begin 
  Result:=''; 
  AppFileName:=Application.ExeName; 
  VersionInfoSize:=GetFileVersionInfoSize(PAnsiChar(AppFileName),varDummy); 
  if VersionInfoSize>0 then 
  begin 
    GetMem(VersionInfo,VersionInfoSize); 
    if GetFileVersionInfo(PAnsiChar(AppFileName),varDummy,VersionInfoSize,VersionInfo) then 
    begin 
       if VerQueryValue(VersionInfo,pchar('\VarFileInfo\Translation'), Pointer(pTranslate),cbTranslate) then 
       begin 
         RequestInfo := format('\StringFileInfo\%.4x%.4x\ProductVersion',[pTranslate^.wLanguage,pTranslate^.wCodePage]); 
         if VerQueryValue(VersionInfo, PAnsiChar(RequestInfo),Pointer(pVersion), VersionSize) then 
            Result:=pVersion; 
       end; 
    end; 
    FreeMem(VersionInfo); 
  end; 
end; 

以上代码放到delphi 项目里应该可以直接用,如果你想获取更多信息,请参考 VerQueryVaule 函数的使用帮助。

VerQueryVaule 的msdn帮助地址

 


摘自 一刀日记

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<