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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 959 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
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
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 :)
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
Merci. Aucun soucis =) Moi aussi j'ai qqsfois reinventé la roue ^^
Dsl de faire ma "pub" ici en passant :p
Messages postés
94
Date d'inscription
lundi 13 janvier 2003
Statut
Membre
Dernière intervention
22 janvier 2009
2
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 !!
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
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 ...
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
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.