2015-04-10 9 views
2

Comme dans le sujet, est-ce possible? Et, je veux les afficher sur une page du programme d'installation si le paramètre (par exemple, le paramètre passé au fichier exe) est défini sur true.Comment obtenir des versions de fichiers (exe et dll) qui sont inclus dans le fichier exe d'installation d'inno setup?

Je sais comment afficher une page:

if dev then 
    PageWersjePlikow := 
     CreateOutputMsgMemoPage(
      1, 'Wersje plików zawarte w  instalatorze', 
      'Lista plików niewidoczna dla klienta', 
      'Pliki:', 'TU WPISAĆ WERSJE PLIKÓW'); 

J'ai quelques idées, mais chaque idée est basée sur Txt construit lors de la compilation d'installation exe puis lire ... il

Répondre

3

Utilisez les fonctions de support GetVersionNumbers ou GetVersionNumbersString. Le GetVersionNumbersString renvoie la version au format Major.Minor.Rev.Build.

Si vous avez besoin d'un format différent, vous devez utiliser GetVersionNumbers et formater les composants de la version, la façon dont vous avez besoin (comme Major.Minor.Rev):

function MyGetVersionNumbersString(const Filename: String; var Version: String): Boolean;  
var 
    MS, LS: Cardinal; 
    Major, Minor, Rev, Build: Cardinal; 
begin 
    Result := GetVersionNumbers(Filename, MS, LS); 

    if Result then 
    begin 
    Major := MS shr 16; 
    Minor := MS and $FFFF; 
    Rev := LS shr 16; 
    Build := LS and $FFFF; 
    Version := Format('%d.%d.%d', [Major, Minor, Rev]); 
    end 
end; 
0

Merci! J'ai trouvé la solution pour le contrôle de paramètres cmd:

function GetParam: Boolean; 
var 
    param: string; 
    i: integer; 
begin 
    Result := False; 
    for i:= 0 to ParamCount do 
    begin 
     param := ParamStr(i); 
     if (param = '-p') then 
     begin 
     Result := True; 
     break; 
     end;  
    end; 
end; 

Avec ma fonction je peux exécuter mon programme d'installation avec le paramètre « -p » et manifesterai ma page contenant des informations que je veux :-)

+1

Vous n Pas besoin de vérifier 'ParamStr (0)' car il y a le chemin complet de l'application. De même, cette variable 'param' n'est pas nécessaire si elle est utilisée une seule fois. Et il est préférable de «sortir» de la fonction plutôt que de simplement «casser» la boucle (cela explique mieux l'intention). Et enfin, en utilisant le nom 'GetParam' pour la fonction qui vérifie (cas sensible) si l'argument de la ligne de commande' -p' a été passé est faux. – TLama

+0

Vous avez absolument raison :-) – vBB