获取一个文件的版本信息

来源:互联网 发布:js日期控件只选择年份 编辑:程序博客网 时间:2024/05/21 10:20
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帮助地址

http://msdn.microsoft.com/en-us/library/windows/desktop/ms647464%28v=vs.85%29.aspx


原创粉丝点击