unit UVersionInfo;
interface
uses Windows, SysUtils;
function GetVersionValue(FileName,QueryName:string):String;
implementation
function GetVersionValue(FileName,QueryName:string):String;
var
InfoSize, Wnd: DWORD;
VerBuf: Pointer;
szName: array[0..255] of Char;
Value: Pointer;
Len: UINT;
TransString:string;
begin
InfoSize := GetFileVersionInfoSize(PChar(FileName), Wnd);
if InfoSize <> 0 then
begin
GetMem(VerBuf, InfoSize);
try
if GetFileVersionInfo(PChar(FileName), Wnd, InfoSize, VerBuf) then
begin
Value :=nil;
VerQueryValue(VerBuf, 'VarFileInfoTranslation', Value, Len);
if Value <> nil then
TransString := IntToHex(MakeLong(HiWord(Longint(Value^)), LoWord(Longint(Value^))), 8);
Result := '';
StrPCopy(szName, 'StringFileInfo'+Transstring+''+QueryName);
if VerQueryValue(VerBuf, szName, Value, Len) then
Result := StrPas(PChar(Value));
end;
finally
FreeMem(VerBuf);
end;
end;
end;
end.
本文介绍了一个用于从指定文件中检索版本信息的Delphi函数。该函数利用Windows API函数`GetFileVersionInfoSize`, `GetFileVersionInfo`及`VerQueryValue`来获取文件版本详细信息,例如产品名称、公司名称等。
7782

被折叠的 条评论
为什么被折叠?



