• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi获取其他exe程序版本号

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
delphi获取Exe文件版本信息的函数

Type 

TFileVersionInfo = Record 

FixedInfo:TVSFixedFileInfo; {版本信息} 
CompanyName:String; {公司名称} 
FileDescription:String; {说明} 
FileVersion:String; {文件版本} 
InternalName:String; {内部名称} 
LegalCopyright:String; {版权} 
LegalTrademarks:String; {合法商标} 
OriginalFilename:String; {源文件名} 
ProductName:String; {产品名称} 
ProductVersion:String; {产品版本} 
Comments:String; {备注} 
LocalPort:String; {Local UDP_Message Port} 
end; 


Function GetFileVerInfo(ExeFileName :Pchar;var VerSionInfo:TFileVersionInfo):Boolean;
var 
dwHandle, dwVersionSize : DWORD; 
Find : String; 
pcBuffer : PChar; 
pTemp : Pointer; 
FileVersionInfo : TVSFixedFileInfo; 
begin 
Find := \'\\'; 
dwVersionSize := GetFileVersionInfoSize( PChar(ExeFilename),dwHandle ); 
if dwVersionSize = 0 then begin 
Result:=False; 
Exit; 
end; 
GetMem( pcBuffer, dwVersionSize ); 
if not GetFileVersionInfo( PChar(ExeFilename),dwHandle,dwVersionSize,pcBuffer ) then begin 
FreeMem(pcBuffer); 
Result:=False; 
Exit; 
end; 
if not VerQueryValue( pcBuffer,PChar(Find),pTemp,dwVersionSize ) then begin 
FreeMem(pcBuffer); 
Result:=False; 
Exit; 
end; 
FileVersionInfo:=PVSFixedFileInfo(pTemp)^; 
With FileVersionInfo do begin 
VersionInfo.FixedInfo.dwSignature:=dwSignature; 
VersionInfo.FixedInfo.dwStrucVersion:=dwStrucVersion; 
VersionInfo.FixedInfo.dwFileVersionMS:=dwFileVersionMS; 
VersionInfo.FixedInfo.dwFileVersionLS:=dwFileVersionLS; 
VersionInfo.FixedInfo.dwProductVersionMS:=dwProductVersionMS; 
VersionInfo.FixedInfo.dwProductVersionLS:=dwProductVersionLS; 
VersionInfo.FixedInfo.dwFileFlagsMask:=FileVersionInfo.dwFileFlagsMask; 
VersionInfo.FixedInfo.dwFileFlags:=fileVersionInfo.dwFileFlags; 
VersionInfo.FixedInfo.dwFileOS:=FileVersionInfo.dwFileOS; 
VersionInfo.FixedInfo.dwFileType:=FileVersionInfo.dwFileType; 
VersionInfo.FixedInfo.dwFileSubtype:=FileVersionInfo.dwFileSubtype; 
VersionInfo.FixedInfo.dwFileDateMS:=FileVersionInfo.dwFileDateMS; 
VersionInfo.FixedInfo.dwFileDateLS:=FileVersionInfo.dwFileDateLS; 
end; 
Find := \'\StringFileInfo\080403A8\\'; 
if VerQueryValue( pcBuffer,PChar(Find+\'CompanyName\'),pTemp,dwVersionSize ) then 
VersionInfo.CompanyName:=PChar(pTemp) 
else begin 
Find := \'\StringFileInfo\040904E4\\'; 
if VerQueryValue( pcBuffer,PChar(Find+\'CompanyName\'),pTemp,dwVersionSize ) then 
VersionInfo.CompanyName:=PChar(pTemp) 
else begin 
Result:=False; 
Exit; 
end; 
end; 
if VerQueryValue( pcBuffer,PChar(Find+\'FileDescription\'),pTemp,dwVersionSize ) then 
VersionInfo.FileDescription:=PChar(pTemp); 

if VerQueryValue( pcBuffer,PChar(Find+\'FileVersion\'),pTemp,dwVersionSize ) then 
VersionInfo.FileVersion:=PChar(pTemp); 

if VerQueryValue( pcBuffer,PChar(Find+\'InternalName\'),pTemp,dwVersionSize ) then 
VersionInfo.InternalName:=PChar(pTemp); 

if VerQueryValue( pcBuffer,PChar(Find+\'LegalCopyright\'),pTemp,dwVersionSize ) then 
VersionInfo.LegalCopyright:=PChar(pTemp); 

if VerQueryValue( pcBuffer,PChar(Find+\'LegalTrademarks\'),pTemp,dwVersionSize ) then 
VersionInfo.LegalTrademarks:=PChar(pTemp); 

if VerQueryValue( pcBuffer,PChar(Find+\'OriginalFilename\'),pTemp,dwVersionSize ) then 
VersionInfo.OriginalFilename:=PChar(pTemp); 

if VerQueryValue( pcBuffer,PChar(Find+\'ProductName\'),pTemp,dwVersionSize ) then 
VersionInfo.ProductName:=PChar(pTemp); 

if VerQueryValue( pcBuffer,PChar(Find+\'ProductVersion\'),pTemp,dwVersionSize ) then 
VersionInfo.ProductVersion:=PChar(pTemp); 

if VerQueryValue( pcBuffer,PChar(Find+\'Comments\'),pTemp,dwVersionSize ) then 
VersionInfo.Comments:=PChar(pTemp); 
if VerQueryValue( pcBuffer,PChar(Find+\'LocalPort\'),pTemp,dwVersionSize ) then 
VersionInfo.LocalPort:=PChar(pTemp) 
else 
VersionInfo.LocalPort:=\'66500\'; 
FreeMem(pcBuffer ); 
Result:=True; 
end; 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi各个版本和发展历史(转)发布时间:2022-07-18
下一篇:
Delphi中Indy 10的安装和老版本的卸载发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap