用原来的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);
|
请发表评论