ähm, ich verwende eine ganz andere Version der GetFileVersion (schon seit mind. 2 Jahren). Nun hab ich auch VISTA und es funzt immer noch:
Delphi-Quellcode:
function GetFileVersion:String;
var Filename: string;
Size, Size2: integer;
Buffer, Buffer2: pointer;
begin
Result:= '?';
Filename:= Application.ExeName;
Size := GetFileVersionInfoSize(pchar(Filename), integer(Buffer));
GetMem(Buffer,Size);
try
if GetFileVersionInfo(pchar(Filename), 0, Size, Buffer) then begin
if VerQueryValue(Buffer, '\', Buffer2, Size2) then begin
with TVSFixedFileInfo(Buffer2^) do begin
Result := inttostr(pword(integer(@dwFileVersionMS)+2)^)+'.'+
inttostr(pword(integer(@dwFileVersionMS)+0)^)+''+
inttostr(pword(integer(@dwFileVersionLS)+2)^)+' -'+
inttostr(pword(integer(@dwFileVersionLS)+0)^);
end;
end;
end;
finally
Dispose(Buffer);
end;
end;
(Achtung, andere Parameterübergabe) Was mir auffällt an DEINER Version, das ein DUMMY verwendet wird, HIER nicht!
// EDIT: Ich korrigiere mich gerade, die Funktion scheint tatsächlich nicht mehr zu funzen, habe dummerweise nach meinem LABEL der Versionsnummer geschaut *gmpf*