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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 210 fois - Téléchargée 32 fois

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

Ajouter un commentaire Commentaires
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
31 mai 2005 à 18:40
Salut Julio, ça fait un bail qu' on t' a pas vu.
C' est une bonne source que tu nous propose mais il y a un truc que tu pourrais améliorer:

Result := LectureVersion(0,'');
et
case index of
10: FTruc := Value;
0: FTruc := 'FileVersion';

Tu devrais créer des constantes au lieu d' utiliser directement la valeur numérique selon l' info que tu désires.
A+

PS: nous les programmeurs, on passe notre temps à essayer d' inventer la ruoe pour essayer de la faire plus ronde :)
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
26 mai 2005 à 17:34
Merci. Aucun soucis =) Moi aussi j'ai qqsfois reinventé la roue ^^
Dsl de faire ma "pub" ici en passant :p
divadav Messages postés 94 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 22 janvier 2009 2
26 mai 2005 à 17:23
Nan, c'est vrai que ton unité est plus sympa !! J'aurais du vérifier avant... Mais j'ai toujours eu tendance à réinventer la roue !!
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
26 mai 2005 à 17:14
oui ça fait un bout =) mais je suis de retour :p
en compo j'aime bien le formatage sympa que ça donne, puis il suffit de modif la version de son prog via les options du projet et a la compilation c'est bien mieux, rien a afire et puis "Version 2.1 (build 21.552)"

peut etre mon code est un plus "lourd" ou moins "simple", à voir ...
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
26 mai 2005 à 16:48
Salut JulioDelphi, ça faisait un bout ! C'est vrai que sous forme de composant, c'est pas mal !...

Ken@vo

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.