IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Delphi Discussion :

[Inno Setup] Lancement à partir d'un .bat


Sujet :

Outils Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 27
    Points
    27
    Par défaut [Inno Setup] Lancement à partir d'un .bat
    Salut à tous !

    Arrivé récemment dans ma boite, j'ai repris le setup créé par un stagiaire sur Inno Setup. Ne connaissant pas le langage, j'ai découvert et réussi à effectuer toutes les tâches que l'on m'a confié. Cependant, il m'en reste une dernière (enfin 2*), sur lesquelles je bloque.

    On m'a demandé de faire en sorte que le numéro de version soit renseigné en paramètre dans un fichier .bat, et que dans le fichier .iss, on puisse récupérer ce numéro de version (le paramètre donc) afin à ne plus avoir à rentrer dans le code du .iss mais seulement dans le fichier config (.bat).

    J'ai testé différentes choses :

    - dans l'invité de commande, j'ai essayé cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ISCC /dMyAppVersion="3.10.5.1" "C:Userssigt_vmDesktopDev_Inno_SetupTEST_SETUP_VIDE.iss"
    qui signifie que dans le fichier TEST_SETUP_VIDE.iss, j'écris la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define MyAppVersion "3.10.5.1"
    Avec un Msgbox, j'ai essayé de voir si cela fonctionne, et ce n'est pas le cas. Je récupère ... rien.


    - dans le code du fichier .iss, j'ai essayé la fonction GetFileVersion("monProgramme.exe" ) mais elle ne fonctionne pas.


    Je voulais donc savoir si quelqu'un aurait une solution approprié afin de résoudre mon problème.

    J'ai fais beaucoup de recherches, notamment sur l'aide Inno Setup mais le peu d'exemples qui sont présent m'empêchent de trouver une solution.


    Voilà, merci



    * : http://www.developpez.net/forums/d15...l/#post8546535

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 683
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 683
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par valentin_emn Voir le message
    - dans l'invité de commande, j'ai essayé cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ISCC /dMyAppVersion="3.10.5.1" "C:\Users\sigt_vm\Desktop\Dev_Inno_Setup\TEST_SETUP_VIDE.iss"
    Cela fonctionne mais il faut supprimer #define MyAppVersion du script. Tu ne peux pas modifier une déclaration existante, seulement en ajouter une nouvelle.

    Citation Envoyé par valentin_emn Voir le message
    - dans le code du fichier .iss, j'ai essayé la fonction GetFileVersion("monProgramme.exe" ) mais elle ne fonctionne pas.
    Sans doute parce qu'il ne sait pas où trouver monProgramme.exe. Il faudrait l'écrire ainsi GetFileVersion(ExpandConstant('{app}\monProgramme.exe')). Bien sûr, il faut que le fichier ait déjà été extrait. Dans InitializeSetup ou InitializeWizard ce n'est pas encore le cas. Donc pas possible d'utiliser ça pour le Welcome screen.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Re',

    Alors là c'est vraiment étrange.

    Voici mon .bat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    ISCC /dMyAppVersion="3.12" "C:\Users\sigt_vm\Desktop\Dev_Inno_Setup\TEST_SETUP_VIDE.iss"
    cd "C:\Users\sigt_vm\Desktop\Dev_Inno_Setup\Output" & Start setup.exe
    Un moment, lorsque je l'ai exécuté,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Varrr:='{#MyAppVersion}';
        MsgBox(Varrr, mbInformation, MB_OK);
    (codé dans le .iss) m'a bien affiché 3.12 ! Effectivement, le #Define MyAppVersion était commenté (Merci pour cette précision).

    Et en changeant dans le .bat la valeur de MyAppVersion, ça fonctionnait correctement !
    J'ai fais des tests et maintenant ça ne marche plus.. J'ai remarqué que pour cela fonctionne, il faut que le .iss ait été recompilé. Problème, Varrr:='{#MyAppVersion}'; génère une erreur étant donné que MyAppVersion n'existe pas encore..


    Je ne me rappelle pas comment c'était pour que ça fonctionne.





    [EDIT] Je fais le test avec le Msgbox pour voir si la valeur est bien récupéré ailleurs, car lors de l'installation, des répertoires sont créés avec le numéro de version.

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 683
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 683
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par valentin_emn Voir le message
    J'ai remarqué que pour cela fonctionne, il faut que le .iss ait été recompilé.
    ISCC est le compilateur, je ne comprends pas ton problème

    Maintenant si tu veux compiler en ligne de commande en forçant la version ET à travers l'éditeur, tu peux toujours conditionner #define MyAppVersion :

    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifndef MyAppVersion
      #define MyAppVersion "3.12"
    #endif

    mais tu sera désynchronisé !

    ps: je n'avais pas fait attention que GetFileVersion était de la pré-compilation. Après essai, #define MyAppVersion GetFileVersion(".\Path\Prog.exe") fonctionne chez moi.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    ISCC est le compilateur, je ne comprends pas ton problème
    Bon, j'étais parti dans des explications mais ce serait trop compliqué à comprendre, le tout c'est de savoir que l'erreur venait de "moi".
    Je lançais le .bat en double clique, ça n'effectuait pas les opérations qu'effectue l'invité de commandes..

    En tout cas merci beaucoup de m'aiguiller comme cela. Pendant que je rédige ma réponse, j'effectue des tests pour vérifier mes propos et ça me donne une idée ou une réponse donc merci
    (Ca fait 3 fois que j'efface mon texte pour écrire autre chose )



    Je vais essayer la fonction GetFileVersion pour voir, c'est peut être tout aussi efficace en étant légèrement + simple.




    [EDIT] GetFileVersion ne fonctionne pas de mon coté. Je pense que je vais rester avec le ISCC.

  6. #6
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 683
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 683
    Points : 13 092
    Points
    13 092
    Par défaut
    Mes informations sont en anglais. Il y a peut-être un problème avec les autres langues.

    As-tu essayé #define MyAppVersion GetStringFileInfo(".\Path\Prog.exe", FILE_VERSION) ?

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define MyAppVersion GetStringFileInfo(".\Path\Prog.exe", FILE_VERSION) ?

    J'ai donc essayé cela mais ça ne fonctionne pas :/ J'ai essayé avec PRODUCT_VERSION aussi mais même résultat. Rien n'est récupéré.

    Donc j'ai quand même réussi à faire ce que je voulais avec la commande ISCC !


    Mon autre soucis c'est sur ce topic là : http://www.developpez.net/forums/d15...e-fichier-xml/


    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Inno Setup] Problème lancement bat
    Par Isa31 dans le forum Outils
    Réponses: 5
    Dernier message: 18/04/2012, 08h58
  2. Réponses: 1
    Dernier message: 08/09/2009, 10h49
  3. Réponses: 2
    Dernier message: 10/06/2009, 16h44
  4. [Inno Setup] Problème de lancement de fichier bat avec Java
    Par oliviercotedor dans le forum Outils
    Réponses: 3
    Dernier message: 13/12/2007, 16h27
  5. Bde Inno Setup et Test
    Par Fxg dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/07/2004, 14h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo