- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi 取得文件版本
//取得文件版本
function GetFileVer(strFileName: String): String;
var
n, Len: DWORD;
Buf : PChar;
Value: Pointer;
szName: array [0..255] of Char;
Transstring: String;
begin
Len := GetFileVersionInfoSize(PChar(strFileName), n);
if Len > 0 then
begin
Buf := AllocMem(Len);
if GetFileVersionInfo(Pchar(strFileName), n, Len, Buf) then
begin
Value := nil;
VerQueryValue(Buf, '\VarFileInfo\Translation', Value, Len);
if Value <> nil then
begin
Transstring := IntToHex(MakeLong(HiWord(LongInt(Value^)), LoWord(LongInt(Value^))),8);
end;
StrPCopy(szName, '\stringFileInfo\' + Transstring + '\FileVersion');
if VerQueryValue(Buf, szName, Value, Len) then
begin
Result := StrPas(Pchar(Value));
end;
FreeMem(Buf, n);
end;
end;
end;