En fait, Nono40 a déjà posé une source dans ce style, mais qui ne renvoyait que la version de l'application...
Ceci est une version un peu plus complète, tout est expliqué dans le code, c'est facile ! Et c'est toujours utile...
Source / Exemple :
//--------------------------------------------------------------------------
// Auteur : David Laumaillé
//
// Date : 26/05/2005
//--------------------------------------------------------------------------
// Fonction : InfosFichier
//
// Description : Cette fonction renvoie une information sur un fichier,
// ou toutes les informations standard.
//
// Entrée : Une chaîne contenant la désignation de l'information demandée.
//
// Sortie : Une chaine contenant la valeur de l'information demandée.
//
// Remarque : Si on passe une chaine vide en paramètre, la fonction renvoie
// une description standard des informations du fichier.
// Si l'information n'existe pas, on renvoie une chaîne vide.
//--------------------------------------------------------------------------
// Liste des informations standards :
// - Comments
// - CompanyName
// - FileDescription
// - FileVersion
// - InternalName
// - LegalCopyright
// - LegalTrademarks
// - OriginalFileName
// - ProductVersion
// - ProductName
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
// Unités utilisées
//--------------------------------------------------------------------------
uses Windows, Forms;
Function InfosFichier(sInfo: String): String;
//--------------------------------------------------------------------------
// InfosFichier
//--------------------------------------------------------------------------
const
iInfo = 10;
aInfo: array[1..iInfo] of string = ('Comments', 'CompanyName', 'FileDescription', 'FileVersion', 'InternalName', 'LegalCopyright', 'LegalTrademarks', 'OriginalFileName', 'ProductVersion', 'ProductName');
aInfoFR: array[1..iInfo] of string = ('Commentaires', 'Entreprise', 'Description', 'Version du fichier', 'Nom interne', 'Copyright', 'Marques légales', 'Nom du fichier d''origine', 'Version du produit', 'Nom du produit');
var
sAppName: string;
n, Len, i: DWORD;
Buf: PChar;
Value: PChar;
begin
Result := '';
sAppName := Application.ExeName;
n := GetFileVersionInfoSize(PChar(sAppName), n);
if n > 0 then begin
Buf := AllocMem(n);
Result := 'Taille des infos = ' + IntToStr(n);
GetFileVersionInfo(PChar(sAppName), 0, n, Buf);
if sInfo = '' then begin
for i := 1 to iInfo do
if VerQueryValue(Buf, PChar('StringFileInfo\040C04E4\' + aInfo[i]), Pointer(Value), Len) then
Result := Result + #13#10 + aInfoFR[i] + ' = ' + Value;
FreeMem(Buf, n);
end else begin
if VerQueryValue(Buf, PChar('StringFileInfo\040C04E4\' + sInfo), Pointer(Value), Len) then
Result := Value;
FreeMem(Buf, n);
end;
end;
end;
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.