程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 獲取一個文件的版本信息

獲取一個文件的版本信息

編輯:Delphi

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

 


摘自 一刀日記

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved