Partage
  • Partager sur Facebook
  • Partager sur Twitter

Création d'exécutable et fichiers INF

    13 juillet 2021 à 11:27:18

    Salut :)

    Pour répondre à une problématique pro, je cherche à créer un fichier exécutable qui répondrait à plusieurs critères :

    • Extraire un des fichiers à un emplacement prédéfini
    • Extraire un .zip dans ce même emplacement (le .exe compile un fichier qui se trouve déjà être une archive pour des raisons pratiques, si ce point n'est pas possible je finirai par me rabattre à ce que les fichiers soient déjà dézippés)
    • Exécuter un setup en .msi pour installer une dépendance
    • Modifier un fichier .bat en fonction d'un prompt utilisateur

    Après pas mal de recherches, je me suis orienté sur l'outil IEXPRESS, car je pense que la création d'un exécutable complété par un fichier INF pourrait répondre au moins aux premier et troisième critères.
    (Si quelqu'un a une autre solution je suis complètement preneur, mais j'avoue que ça m'a donné envie de vouloir maitriser un peu + cet outil)

    Et.. Je galère, je suis pas développeur de métier. J'ai réussi à répondre au premier critère avec la section [DestinationDirs]et la directive install.files (hésitez pas à me corriger si les termes sont pas les bons).
    Je crois qu'il est possible de répondre au troisième critère avec la directive AddSoftware.
    Pour le reste je patauge :(

    Histoire de vous montrer où j'en suis même si c'est pas grand chose, voici à quoi ressemble mon fichier .inf :

    [version]  
    signature="$CHICAGO$"
    
    [DefaultInstall]
    CopyFiles=install.files
    
    [DestinationDirs]
    install.files=-1,"C:\Users\champ\Desktop\app\C\"
    
    [install.files]    
    extraction.bat
    app.zip

    extraction.bat c'est un script pour extraire le app.zip que je pensais innocemment pouvoir inclure dans le .exe
    Au passage, je me suis renseigné concernant cette histoire de signature. Tout le monde met chicago alors j'ai mis aussi, mais si quelqu'un a des explications plus approfondies je suis preneur également :)

    Merci beaucoup !

    • Partager sur Facebook
    • Partager sur Twitter
      13 juillet 2021 à 16:40:42

      si le .bat ne fait qu'une décompression, IEXPRESS (qui est un soft pour créer un installeur) devrait pouvoir le faire.

      (modifier un .bat c'est pas forcément une bonne idée, il vaut mieux, je pense, que il prenne en charge des paramètres passés en ligne de commande)

      pour compiler, il faut les outils de compilation aussi.

      du côté des logiciels pour faire un installeur, tu as aussi instal creator (https://www.clickteam.com/fr/install-creator-2 ) ou NSIS (https://nsis.sourceforge.io/Main_Page )

      • Partager sur Facebook
      • Partager sur Twitter
        14 juillet 2021 à 16:43:35

        Salut,

        Je ne vois pas bien l'utilité du .inf dans ton cas, qu'est-ce qui t'empêche d'extraire des fichiers à un emplacement prédéfini ?

        Comme dit par umfred il vaudrait mieux passer au .bat le ou les paramètres plutôt que le modifier.

        Pour exécuter un .msi il y a la commande msiexec

        Si le fichier .zip n'est pas trop gros tu peux le fusionner dans le .bat grâce à un outil externe, un peu à la manière d'un .exe qui incorpore d'autres fichiers.

        • Partager sur Facebook
        • Partager sur Twitter

        “L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”

          15 juillet 2021 à 10:17:58

          Hello, merci de vos réponses

          umfred a écrit:

          si le .bat ne fait qu'une décompression, IEXPRESS (qui est un soft pour créer un installeur) devrait pouvoir le faire

          Oui j'ai dit m'être orienté là dessus

          umfred a écrit:

          (modifier un .bat c'est pas forcément une bonne idée, il vaut mieux, je pense, que il prenne en charge des paramètres passés en ligne de commande)

          du côté des logiciels pour faire un installeur, tu as aussi instal creator (https://www.clickteam.com/fr/install-creator-2 ) ou NSIS (https://nsis.sourceforge.io/Main_Page )

          J'ai fait le .bat, je comprends pas pourquoi il ne faut pas que je le modifie ?
          Merci pour les logiciels, je regarde de ce côte aussi

          barnabe0057 a écrit:

          Je ne vois pas bien l'utilité du .inf dans ton cas, qu'est-ce qui t'empêche d'extraire des fichiers à un emplacement prédéfini ?

          D'après mon utilisation dessus, IEXPRESS me laisse le choix entre créer un exe qui demande à l'utilisateur où extraire les fichiers, ce que je ne veux pas, ou créer un exe qui s'extrait dans un %temp%/IX001 quelque chose (oublié, oups) et qui peut se manipuler via un fichier .inf, il faut aussi que je réponde aux autres critères que j'ai énoncé

          barnabe0057 a écrit:

          Comme dit par umfred il vaudrait mieux passer au .bat le ou les paramètres plutôt que le modifier.

          Pour exécuter un .msi il y a la commande msiexec

          Si le fichier .zip n'est pas trop gros tu peux le fusionner dans le .bat grâce à un outil externe, un peu à la manière d'un .exe qui incorpore d'autres fichiers.


          Je ne comprends pas quand vous me parler de modifier le bat, c'est bon à savoir que je peux exécuter du msi depuis le bat ceci dit.

          Finalement, si je peux être plus clair, le but est d'avoir un installateur qui soit automatisé et qui laisse le moins de choix possible à l'utilisateur autre que le prompt que je mentionne.

          • Partager sur Facebook
          • Partager sur Twitter
            15 juillet 2021 à 11:02:41

            un .bat c'est un script, donc tu peux faire pas mal de chose. il peut prendre des paramètres lors de son appel, et les traiter (comme le ferait une commande en ligne de commande)

            C'est toi qui initialement demande à modifier un .bat par ton programme; il vaut mieux que ton .bat prenne en charge un ou plusieurs paramètres (variables) et les intégrer au code du .bat; ou d'avoir un .bat différent par situations possibles

            fichier.bat param1 param2 param3


            Que peut faire l'utilisateur via le prompt et le .bat ? 

            • Partager sur Facebook
            • Partager sur Twitter
              15 juillet 2021 à 11:47:22

              Ah oui désolé, j'y étais pas.

              Le .bat que je souhaite modifier contient une adresse IP vers un serveur distant qui est différente en fonction du site, je souhaitais avoir un prompt utilisateur pour qu'il puisse modifier l'adresse du serveur contenue dans ce .bat. Il sert à lancer un autre programme contenant ces paramètres.

              Sous Linux je fais avec sed, mais sous Windows j'espérais faire avec ce .exe :p

              • Partager sur Facebook
              • Partager sur Twitter
                15 juillet 2021 à 13:13:01

                1) Je n'ai pas bien expliqué mon idée, là où je voulais en venir c'est qu'apparemment tu galères à programmer le fichier .inf donc ma question c'est : pourquoi ne pas laisser tomber le .inf et plutôt programmer tout ça directement dans ton .bat ? Si je propose cela c'est parce que que j'ai déjà créé ce genre d'installateur avec IEXPRESS.

                2) Concernant le prompt utilisateur : ne serait-il pas possible que le .bat devine de lui-même (en analysant le réseau par exemple) l'adresse ip vers le serveur distant ?

                • Partager sur Facebook
                • Partager sur Twitter

                “L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”

                  15 juillet 2021 à 13:43:00

                  barnabe0057 a écrit:

                  1) Je n'ai pas bien expliqué mon idée, là où je voulais en venir c'est qu'apparemment tu galères à programmer le fichier .inf donc ma question c'est : pourquoi ne pas laisser tomber le .inf et plutôt programmer tout ça directement dans ton .bat ? Si je propose cela c'est parce que que j'ai déjà créé ce genre d'installateur avec IEXPRESS.

                  Ah oui ? J'avais essayé de mettre un .bat en install program et ça avait pas du tout fonctionné, tu as un exemple de ce que tu aurais fait ? Effectivement je galère pas mal avec le .inf mais si je repasse en bat j'aurai beaucoup plus de bases déjà !

                  barnabe0057 a écrit:

                  2) Concernant le prompt utilisateur : ne serait-il pas possible que le .bat devine de lui-même (en analysant le réseau par exemple) l'adresse ip vers le serveur distant ?

                  Hm non c'est pas assez bien uniformisé pour ça.. Mais si déjà je peux faire un bat avec un msiexec comme tu me mentionnais je serai jamais allé aussi loin aha



                  -
                  Edité par Champ' 15 juillet 2021 à 13:43:18

                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 juillet 2021 à 14:26:00

                    A propos du $CHICAGO$, c'est pour désigner les OS windows (à l'époque c'était pour les windows 9x, mais aujourd'hui étendu à tous les windows) https://en.wikipedia.org/wiki/INF_file 

                    Chicago c'était le nom de code windows 95 https://en.wikipedia.org/wiki/List_of_Microsoft_codenames 

                    • Partager sur Facebook
                    • Partager sur Twitter
                      15 juillet 2021 à 14:40:09

                      Voilà par exemple la ligne de commande (partielle) que j'utilise pour installer le .msi de TightVNC :

                      msiexec /passive /promptrestart /i "tightvnc-2.8.59-gpl-setup-64bit.msi"

                      Ceci me sert dans le cadre de mon projet d'installation semi-automatisée d'un outil d'administration à distance (connexion VNC à travers un tunnel SSH inverse).

                      Si tu veux visualiser le script en détail, il faut télécharger le zip et regarder dans le fichier setup.cmd : https://we.tl/t-bUqiPTLcK3

                      Si tu as des questions n'hésite pas.

                      • Partager sur Facebook
                      • Partager sur Twitter

                      “L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”

                        15 juillet 2021 à 15:28:48

                        umfred a écrit:

                        A propos du $CHICAGO$, c'est pour désigner les OS windows (à l'époque c'était pour les windows 9x, mais aujourd'hui étendu à tous les windows) https://en.wikipedia.org/wiki/INF_file 

                        Chicago c'était le nom de code windows 95 https://en.wikipedia.org/wiki/List_of_Microsoft_codenames 


                        Ah oui d'accord ça me disait quelque chose effectivement, merci :)

                        barnabe0057 a écrit:

                        Voilà par exemple la ligne de commande (partielle) que j'utilise pour installer le .msi de TightVNC :

                        msiexec /passive /promptrestart /i "tightvnc-2.8.59-gpl-setup-64bit.msi"

                        Ceci me sert dans le cadre de mon projet d'installation semi-automatisée d'un outil d'administration à distance (connexion VNC à travers un tunnel SSH inverse).

                        Si tu veux visualiser le script en détail, il faut télécharger le zip et regarder dans le fichier setup.cmd : https://we.tl/t-bUqiPTLcK3

                        Si tu as des questions n'hésite pas.

                        C'est super cool, je regarde ça dès que j'ai du temps !

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Création d'exécutable et fichiers INF

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        • Editeur
                        • Markdown