Yo he probado este código, que es el que ofrece cadetill con algún cambio sutil, y funciona.
Código:
function GetFileVersion( AFileName : String ) : string;
var
Size,
Size2 : DWord;
Pt,
Pt2 : Pointer;
begin
Size := GetFileVersionInfoSize(PChar(AFileName), Size2);
if Size > 0 then
begin
GetMem(Pt, Size);
try
GetFileVersionInfo (PChar(AFileName), 0, Size, Pt);
VerQueryValue (Pt, '', Pt2, Size2);
with TVSFixedFileInfo (Pt2^) do
Result:= Format('Versión %d.%d Build %d.%d', [ HiWord(dwFileVersionMS),
LoWord(dwFileVersionMS),
HiWord(dwFileVersionLS),
LoWord(dwFileVersionLS)] );
finally
FreeMem (Pt);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := GetFileVersion( 'C:\WINDOWS\Moricons.dll' );
end;