您的位置:首页 > 编程语言 > Delphi

Delphi2010怎样获取程序内部自身版本?

2016-04-09 11:15 429 查看
用原来的GetFileVersionInfo仅仅能获取Delpi7的程序版本,用在Delphi2010中就无论用了

//------ 获取文件版本

function F_GetFileVersion(FN: string): string;

var

Temp, InfoSize: Cardinal;

FileData: Pointer;

FileInfo: PVSFixedFileInfo;

begin

Result := '';

if not FileExists(FN) then Exit;

InfoSize := GetFileVersionInfoSize(PChar(FN), Temp);

if InfoSize = 0 then Exit; //没有版本

FileData := GetMemory(InfoSize);

try

if not GetFileVersionInfo(PChar(FN), 0, InfoSize, FileData) then Exit;

if not VerQueryValue(FileData, '\', Pointer(FileInfo), Temp) then Exit;

Result := Format('%d.%d.%d.%d',

[FileInfo.dwFileVersionMS div $10000,

FileInfo.dwFileVersionMS mod $10000,

FileInfo.dwFileVersionLS div $10000,

FileInfo.dwFileVersionLS mod $10000]);

finally

FreeMemory(FileData)

end;

解决方法是用第三方控件Rave。里面有个RzVersionInofo,放上去编译的时候勾选Including version information in project,就能够获取版本了,获取方法:Showmessage(RzVersionInofo1.FileVersion);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: