begin process at 2010 02 10 06:24:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > INFORMATIONS SUR L'APPLICATION (VERSION, COPYRIGHT, ETC...)

INFORMATIONS SUR L'APPLICATION (VERSION, COPYRIGHT, ETC...)


 Information sur la source

 Description

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

  • //--------------------------------------------------------------------------
  • // 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;
//--------------------------------------------------------------------------
// 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;



 Sources du même auteur

Source avec Zip UTILISATION DE DLGDIRLIST

 Sources de la même categorie

Source avec Zip NEXTGENS -> UNITÉS DE TYPES ÉVOLUÉS NOUVELLE GÉNÉRATION (DE... par f0xi
Source avec Zip Source avec une capture AUTO-COMPLÉTION D'UN CONTRÔLE DE SAISIE par Bacterius
Source avec Zip CARDS GAME SDK 1.0.0.0 par f0xi
Source avec Zip Source avec une capture TRAYICON - VOTRE ICONE DANS LA BARRE DES TACHES par Bacterius
Source avec Zip Source avec une capture WINHIDER _ CACHER UN PROGRAMME DE L'ÉCRAN ET DE LA BARRE DE ... par soldier8514

Commentaires et avis

Commentaire de JulioDelphi le 26/05/2005 11:11:07 administrateur CS

Hello,
comme ça par exemple :
http://www.delphifr.com/code.aspx?ID=27002

Commentaire de Kenavo le 26/05/2005 16:48:48

Salut JulioDelphi, ça faisait un bout ! C'est vrai que sous forme de composant, c'est pas mal !...

Ken@vo

Commentaire de JulioDelphi le 26/05/2005 17:14:52 administrateur CS

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 ...

Commentaire de divadav le 26/05/2005 17:23:40

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 !!

Commentaire de JulioDelphi le 26/05/2005 17:34:45 administrateur CS

Merci. Aucun soucis =) Moi aussi j'ai qqsfois reinventé la roue ^^
Dsl de faire ma "pub" ici en passant :p

Commentaire de MAURICIO le 31/05/2005 18:40:24

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 :)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales