Informations sur l'application (version, copyright, etc...)

Contenu du snippet

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;

A voir également

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.