Der folgende Code könnte das sein, wonach Sie suchen. Es verwendet GetFileVersionInfoSize und GetFileVersionInfo. Es gibt eine TStringList mit den verschiedenen Bits der Versionsinformationen zurück. Sie müssen wahrscheinlich den FileDescription Eintrag wünschen. Es basiert auf einem Code from the Delphi section of About.com.
const
// Version Info sections as stored in Exe
viCompanyName = 'CompanyName';
viFileDescription = 'FileDescription';
viFileVersion = 'FileVersion';
viInternalName = 'InternalName';
viLegalCopyRight = 'LegalCopyright';
viLegalTradeMarks = 'LegalTradeMarks';
viOriginalFilename = 'OriginalFilename';
viProductName = 'ProductName';
viProductVersion = 'ProductVersion';
viComments = 'Comments';
viAuthor = 'Author';
VersionInfoNum = 11;
VersionInfoStr : array [1..VersionInfoNum] of String =
(viCompanyName,
viFileDescription,
viFileVersion,
viInternalName,
viLegalCopyRight,
viLegalTradeMarks,
viOriginalFilename,
viProductName,
viProductVersion,
viComments,
viAuthor
);
function GetFileVersionInformation(FileName : string; ListOut : TStrings) : boolean;
// Code based on the following from About.com/Delphi:
// http://delphi.about.com/cs/adptips2001/a/bltip0701_4.htm
//
// Related: http://www.delphidabbler.com/articles?article=20&printable=1
var
n, Len : DWord;
j : Integer;
Buf : PChar;
Value : PChar;
begin
Result := false;
ListOut.Clear;
n := GetFileVersionInfoSize(PChar(FileName), n);
if n > 0 Then
begin
Buf := AllocMem(n);
try
ListOut.Add('Size='+IntToStr(n));
GetFileVersionInfo(PChar(FileName),0,n,Buf);
for j:=1 To VersionInfoNum Do
begin
// this was originally working out the Locale ID for United States ($0409)
// where as we want United Kingdom ($0809)
// See notes for Chapter 22, page 978 - http://www.marcocantu.com/md4/md4update.htm
//if VerQueryValue(Buf,PChar('StringFileInfo\040904E4\'+
// InfoStr[j]),Pointer(Value),Len) then
if VerQueryValue(Buf, PChar('StringFileInfo\080904E4\' + VersionInfoStr[j]), Pointer(Value), Len) then
begin
if Length(Value) > 0 Then
begin
ListOut.Add(VersionInfoStr[j] + '=' + Value);
end;
end;
end;
finally
FreeMem(Buf,n);
Result := True;
end;
end;
end;
in der vollständigen Dateinamen übergeben Sie einfach und eine TStringList auf die obige Funktion, dann können Sie die Beschreibung nur bekomme folgendes:
Result := ListOut.Values[viFileDescription];
bearbeiten - den Code Liebe Formatierung im Hauptbeispiel dort, glaube nicht, dass es die \ 'gefallen hat.
Ihre Frage ist schlecht formatiert (werfen Sie einen Blick auf die Bearbeitungs-Tools, die SO bietet), aber ich erhalte aus Ihrer "Ich kann tun" -Anweisung, dass Sie die Dateibeschreibung erhalten können. Am Ende fragt man, wie man die Beschreibung "eintippt", die "cooler Text über meine Datei" enthält. Könnten Sie Begriffe etwas genauer verwenden? In welchem Bereich suchen Sie? – Argalatyr