WB Tutorial NSIS pour installeurs automatiques

Users who are viewing this thread

Daneel53

Sergeant Knight at Arms
Bonjour à tous les moddeurs et traducteurs,

Devant les problèmes rencontrés par les utilisateurs de nos VF pour installer ces dernières depuis une archive, j'ai un jour écrit un installeur automatique pour la VF de Native. Cet installeur est fabriqué avec NSIS, comme Taleworlds l'a fait pour les versions officielles de Mount&Blade, et de ce fait lui ressemble comme deux gouttes d'eau.

Pour répondre à une question de Ecko95 qui se demandait comment on fait, je me suis lancé dans un tutorial pour NSIS basé sur mon installeur de la VF de Native. Ce tutorial est aujourd'hui terminé, aussi il est temps de le faire partager à la communauté.

Je vous invite à le télécharger depuis le mini site que j'ai créé spécialement à cet effet : http://sites.google.com/site/lesitededaneel53/

Comme indiqué, ce tutorial ne décrivant que les fonctions de NSIS nécessaires et suffisantes pour la VF de M&B, il n'en décrit pas toutes les possibilités. Après ce tome 1 écrit "pour les nuls", un tome 2 "pour les pros" conclura ce tutorial... dans quelques semaines.

En attendant le tome1 devrait déjà permettre aux moddeurs de se lancer dans la construction d'un installeur automatique pour leurs mods, comme Cotin l'a déjà fait sur son site  http://mountvf.calimerou.fr/ pour les VF de 6 mods.

Si vous avez des commentaires sur ce tutorial, n'hésitez pas, que ce soit par ce forum ou via mon Email.

Bon courage à tous  :wink:
 
Hello

Salut Dan !!!
Il va falloir un jour que je regarde le résultat de ton travail !!!
Bien que je sois un nul en programmation, mais avec un excellent tuto...  :idea:

A la tienne !
Tchin
:twisted:
 
Salut Ber,

Ce soir j'essaie d'installer la RC de  Seven, histoire d'anticiper le comportement des mon installeur sur ce nouvel OS.

J'espère arriver au bout du processus après moult précautions... sinon je finirai ça la semaine prochaine.

Salut les moddeurs et les traducteurs !
:twisted:
 
Un petit mot rapide pour dire que l'installeur automatique sous Seven a le même comportement que sous Vista : il marche très bien... sauf quand M&B est installé dans Program Files ! Alors de grâce, sous Seven comme sous Vista, mettez M&B et de façon générale vos jeux ailleurs que sous Program Files.

En attendant une correction de ce problème... si je la trouve un jour !

Bye  :cool:
 
Le problème a été résolu ! Les installations se passent désormais très bien sous Seven et Vista même quand M&B est installé dans Program Files.

Mon tutorial a été modifié en conséquence, la nouvelle version 1.1 du tome 1 est en place sur mon site.

Le tome 2 est commencé, ça sortira dans quelques semaines suivant mes disponibilités.

A quand un mod avec un installeur automatique ?  :idea:  Tiens, d'ailleurs je vais peut-être simuler l'installation d'un mod dans le tome 2, et non plus simplement la VF de Native...

Salut les moddeurs    :cool:
 
Hello !

Bonne idée Dan !  :idea:
C'est important de tester l'installateur auto pour des mods, je ne sais pas comment cela fonctionne et je me demandais justement comment cela peut marcher pour un même mod dont le nom du dossier serait différent pour plusieurs d'entre nous.
Exemple pour Lords&realms, moi le dossier s'appelle LR1505, et j'en ai un autre qui s'appelle LR1501, pour un autre ça sera LordsAndRealms et pour un autre... tu vois ce que je veux dire !
Comment ton installateur peut-il retrouver le bon dossier du mod ?

D'ailleurs je viens de voir un post "Mod Lord & Realms problème patch fr" de Agrale, l'installateur n'arrive pas à installer le mod, alors que ça marche pour Native et NE ! Peut-être que cela n'a rien à voir, dans ce domaine je ne suis pas une lumière !

Par contre il y a d'autres domaines... comme celui de la Fourmaune dans le Gigondas qui n'ont pas de secret pour moi, et pour toi aussi d'ailleurs !!!

En tout cas, tu fais un boulot formidable pour ceux qui n'ont pas envie de manipuler des fichiers, même pour simplement les installer !

Tchin
Double vodka !
:twisted:
 
Si je te comprend bien, chaque version de mod est installée dans un répertoire différent en fonction, certes de son nom, mais aussi de sa version. Peu importe !

En effet, une instruction dans l'installeur dit dans quel répertoire doivent être installés les fichiers, donc tant que l'installeur désigne le bon, tout va bien. A moins, bien sûr, que les mods ne s'enregistrent dans le registre de Windows pour dire où ils sont installés grâce à une clé qu'ils ont généré et reconnaissent... ce que fait par exemple M&B pour signaler son répertoire d'installation et sa version.

Bon, à moins que tu ne m'en indiques un autre, je regarderai comment s'installent les différents mods de Lord&Realm, histoire de m'en inspirer. Au fait, on les trouve où, les différents mods de L&R ?

 
Ce que tu as évoqué est quasiment impossible à faire de façon entièrement automatique en l'état. En effet, si tu veux dire qu'un mod donné pourrait être installé suivant l'utilisateur dans un répertoire dont il a choisi le nom tout seul, un installeur de la VF du mod en question n'a aucun moyen de retrouver le nom du répertoire inventé par ledit utilisateur... sauf si le mod en s'installant écrivait dans le registre Windows où il est installé, ce que L&R par exemple ne fait pas.

Je viens de regarder ce qu'il se passe pour L&R. La dernière version du mod est distribuée sous forme d'archive .7z et s'installe dans une arborescence de nom "Lords and Realms 1.505". Pour cette raison la VF actuellement distribuée sur le site de Cotin s'installe elle aussi d'autorité dans un répertoire avec exactement ce nom là (bien qu'étant actuellement une VF de la 1.501). Si un utilisateur décide d'installer le mod dans un répertoire de nom différent, la VF ne sera jamais correctement installée, sauf à prendre les fichiers et les remettre à la main dans le bon répertoire. L'installeur automatique pourrait éventuellement laisser l'utilisateur désigner le bon répertoire du mod, mais tel qu'il est fait actuellement ça ne fonctionne pas car il attend qu'on lui désigne le répertoire de M&B, non celui du mod L&R. Ça se corrige..., j'essaierai de faire ça bientôt. Mais l'installeur ne pourra jamais trouver seul un nom exotique de répertoire inventé... sauf à chercher des fichiers spécifiques du mod en question, mais là ça devient usine à gaz.

Bonne nuit à tous,
:cool:
 
Et ne serait-il pas possible de faire un script du genre :



si répertoire "\Mount&Blade\modules\Lords&Realms 1.501\" existe
          installer la VF en "\Mount&Blade\modules\Lords&Realms 1.501\"

sinon si répertoire "\Mount&Blade\modules\Lords&Realms 1.505\" existe
          installer lma VF en "\Mount&Blade\modules\Lords&Realms 1.505\"

sinon
          demander à l'utilisateur le choix du répertoire d'installation




Sachant qu'à mon avis, les créateurs de L&R utilisent toujours une même convention de nommage, ça devrait pouvoir marcher, non ?

Ca serait quand même plus simple si on ne changeait pas de nom de répertoire à chaque nouvelle version :razz:
 
Salut Cotin,

Ça va se résoudre en demandant à l'utilisateur le répertoire du mod et non le répertoire de Mount&Blade comme dans les installeurs aujourd'hui, mais ensuite il faudra un peu modifier le script, notamment parce que l'arborescence des fichiers ne partira plus du même niveau et qu'il faudra savoir remplacer le fichier language.txt sous la racine de M&B.

Rien de bien terrible, je t'envoie un script pour la VF de L&R très rapidement, cette nuit si tout va bien.
 
Je ne suis pas loin de la fin, mais il se fait tard et j'ai besoin de dormir.
Au pire je t'envoie ça lundi soir prochain, mais j'espère avant.

Salut Cotin  :cool:
 
Cotin, j'ai déposé un nouveau script NSIS sur mon site, avec le doc explicatif d'accompagnement.

Le script ayant été pas mal remanié par rapport à celui dont tu étais parti il y quelques temps, j'espère que celui-ci te permettra de générer des installeurs un peu plus performants que les précédents. En tout cas chez moi il fait son boulot avec la version 1.505 de Lord and Realms.

A +
 
Dans la foulée je viens de remanier le Tome 1 de mon Tutorial NSIS. Je suis en effet reparti de la version modifiée du script pour la VF de Lords and Realms, mieux organisée et commentée que mon premier script de mai 2009, pour refaire le script pour la VF de Native, et j'ai modifié le document en conséquence.

Tout ceci donne un Tutorial Tome 1 v1.2 et ses documents associés (avec la dernière VF de Native du 14 octobre 2009). Compte tenu de ce dernier nettoyage, ce tome 1 ne devrait désormais plus bouger. J'invite les lecteurs intéressés à se rendre sur mon site prendre cette dernière version... et Cotin à mettre à jour son site s'il veut continuer à mettre mon tutorial sur une de ses pages.

Ce travail derrière moi, je pourrai pour ma part me remettre sur le Tome 2... à moins qu'il y ait une demande pour des installeurs des VF des autres mods si Cotin n'a pas le temps de les reprendre.

Bon, il se fait encore (trop) tard, au dodo !
 
Bonjour

Il me semble que tu a une bonne experience en NSIS, sais tu coment je peux demarer une application apres l'installation ?

Merci de ton aide
 
Bonjour,

Si tu utilises comme moi Modern UI 2, il faut créer une page de fin grâce à la macro MUI_PAGE_FINISH. Cette page permet différentes actions, dont l'exécution d'un programme ou la lecture du Readme sont les plus habituelles.

Les explications se trouvent dans le §9.11 de mon Tutorial NSIS 1.2 que tu trouveras sur mon mini-site dont l'adresse est indiquée en début de ce sujet.

 
Bonjour,

Je me suis lancé dans NSIS depuis peu et ai créer mon premier installeur (grâce au tuto de daneel53 d'ailleurs). Le problème est qu'il y a des actions que je ne trouve pas, en l’occurrence je chercher à faire des choses un peu compliqué (à mon sens ^^). Je vais vous montrer mon code, ce qui sera plus simple pour vous expliquer.
Avant de commencer, je vais quand même vous expliquer le but de cette installeur : Je suis consultant SAP BusinessObjects, j'ai créer un script pour faire 4 types de sauvegarde différentes avec renommage et rotation des sauvegardes pour en avoir plusieurs jeux.
Je cherche donc à automatiser l’implémentation des sauvegardes (que je dois faire actuellement à la mano). Le problème est que l'installation est différente chez chaque client, je voudrais pouvoir personnaliser certaines sections (pendant l'installation) via des "input user".


code :
=========================================================================================================================================================

;Sauvegardes automatisées pour BusinessObjects BI 4.0
;
;Ecrit par MLegrand
;Version 1.0
;le 19 juin 2013

!include "MUI2.nsh"

;-----------------------------------------------
;Généralités
;-----------------------------------------------

!define APPNAME "Sauvegardes automatisées BI 4.0" ;nom du programme
!define APPNAMEANDVERSION "Sauvegardes automatisées 1.0" ;version du programme

Name "${APPNAME}"
Outfile "${APPNAME}.exe" ;nom de l'installeur

InstallDir "C:\BIAR" ;chemin d'installation du programme

RequestExecutionLevel admin ;demande de droits admin

;-----------------------------------------------
;Définitions générale pour le contenu des pages
;-----------------------------------------------

!define MUI_ABORTWARNING ;boîte d'avertissement en cas d'arrêt anticipé du programme

!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\00-Test 1\Images\welcome.bmp" ;images sur pages d'accueil et fin

!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_RIGHT
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\00-Test 1\Images\Entete.bmp" ;image d'entête (à droite)

;-----------------------------------------------
;Pages de l'installeur
;-----------------------------------------------

; Page d'accueil
;---------------

!define MUI_WELCOMEPAGE_TITLE "Bienvenue dans le programme d'installation des sauvegardes automatisées"
!define MUI_WELCOMEPAGE_TITLE_3LINES
!define MUI_WELCOMEPAGE_TEXT "Ce programme, réalisé par Cosmos-Consulting, va mettre en place les sauvegardes automatisées de votre plateforme BusinessObjects."
!insertmacro MUI_PAGE_WELCOME

;Page de licence
;---------------

!define MUI_PAGE_HEADER_TEXT "Conditions d'utilisation"
!define MUI_PAGE_HEADER_SUBTEXT "Merci de lire le texte suivant avant de continuer"
!define MUI_LICENSEPAGE_TEXT_TOP "Après avoir lu les conditions d'utilisation, cliquez sur J'accepte pour continuer"
!define MUI_LICENSEPAGE_TEXT_BOTTOM "Vous êtes d'accord ? cliquez sur suivant, sinon cliquez sur Annuler"
!insertmacro MUI_PAGE_LICENSE "C:\Program Files (x86)\NSIS\00-Test 1\Conditions d'utilisation.txt"

;Page de sélection des composants
;--------------------------------

!define MUI_PAGE_HEADER_TEXT "Choix des Sauvegardes"
!define MUI_PAGE_HEADER_SUBTEXT "Choisissez les Sauvegardes à mettre en place"
!define MUI_COMPONENTSPAGE_TEXT_TOP "Vous pouvez choisir une ou plusieurs Sauvegardes"
!define MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_COMPONENTS

;Page d'installation en cours
;----------------------------

!insertmacro MUI_PAGE_INSTFILES

;Page d'installation terminée
;----------------------------

!define MUI_FINISHPAGE_NOAUTOCLOSE

;Page de fin
;-----------

!define MUI_FINISHPAGE_TITLE "Fin de la mise en place des sauvegardes automatisées"
!define MUI_FINISHPAGE_TEXT "Vos sauvegardes automatisées sont en place, n'oubliez pas de planifier 'Sauvegardes.bat' avec le planificateur windows."
!define MUI_FINISHPAGE_RUN "$INSTDIR\Sauvegardes.bat"
!define MUI_FINISHPAGE_RUN_TEXT "Lancer une sauvegarde manuelle maintenant ?"
!insertmacro MUI_PAGE_FINISH

;Les différents composants
;-------------------------

Section "Script" Section1

SectionIn RO
SetOverwrite on

SetOutPath "C:\BIAR"

File /a /r "${NSISDIR}\00-Test 1\BIAR\Sauvegardes.bat"
CreateShortCut "$DESKTOP\Sauvegardes automatisées.lnk" "$INSTDIR\Sauvegardes.bat"
; CreateDirectory "$SMPROGRAMS\Sauvegardes automatisées"
; CreateShortCut "$SMPROGRAMS\Sauvegardes automatisées\Sauvegardes automatisées.lnk" "$INSTDIR\Sauvegardes.bat"
; CreateShortCut "$SMPROGRAMS\Sauvegardes automatisées\Uninstall.lnk" "$INSTDIR\uninstall.exe"

SectionEnd

Section "Dossiers publics" Section2

SetOverwrite on

SetOutPath "C:\BIAR"

Fileopen $0 "C:\BIAR\Dossiers_publics.properties" a
FileWrite $0 "exportBiarLocation=C:/BIAR/backups/Dossiers_publics/Dossiers_publics.biar$\n"
FileWrite $0 "action=exportXML$\n"
FileWrite $0 "userName=Administrator$\n"
FileWrite $0 "password=xxxxxxx$\n"
Filewrite $0 "CMS=localhost:6400$\n"
FileWrite $0 "authentication=secEnterprise$\n"
FileWrite $0 "exportDependencies=true$\n"
FileWrite $0 "exportQuery=select * from ci_infoobjects where SI_ancestor = 23$\n"
FileWrite $0 "exportQueriesTotal=1"
CreateDirectory "C:\BIAR\backups\Dossiers_publics"

SectionEnd


Section "Dossiers personnels" Section3

SetOverwrite on

SetOutPath "C:\BIAR"

Fileopen $0 "C:\BIAR\Dossiers_personnels.properties" a
FileWrite $0 "exportBiarLocation=C:/BIAR/backups/Dossiers_personnels/Dossiers_personnels.biar$\n"
FileWrite $0 "action=exportXML$\n"
FileWrite $0 "userName=Administrator$\n"
FileWrite $0 "password=xxxxxxx$\n"
Filewrite $0 "CMS=localhost:6400$\n"
FileWrite $0 "authentication=secEnterprise$\n"
FileWrite $0 "exportDependencies=true$\n"
FileWrite $0 "exportQuery=select * from ci_infoobjects where SI_ancestor = 18$\n"
FileWrite $0 "exportQueriesTotal=1"
CreateDirectory "C:\BIAR\backups\Dossiers_personnels"

SectionEnd


Section "Univers" Section4

SetOverwrite on

SetOutPath "C:\BIAR"

Fileopen $0 "C:\BIAR\Univers.properties" a
FileWrite $0 "exportBiarLocation=C:/BIAR/backups/Univers/Univers.biar$\n"
FileWrite $0 "action=exportXML$\n"
FileWrite $0 "userName=Administrator$\n"
FileWrite $0 "password=xxxxxxx$\n"
Filewrite $0 "CMS=localhost:6400$\n"
FileWrite $0 "authentication=secEnterprise$\n"
FileWrite $0 "exportDependencies=true$\n"
FileWrite $0 "exportQuery=select * from ci_infoobjects where SI_ancestor = 115$\n"
FileWrite $0 "exportQueriesTotal=1"
CreateDirectory "C:\BIAR\backups\Univers"

SectionEnd


Section "Utilisateurs et groupes" Section5

SetOverwrite on

SetOutPath "C:\BIAR"

Fileopen $0 "C:\BIAR\Utilisateurs_et_groupes.properties" a
FileWrite $0 "exportBiarLocation=C:/BIAR/backups/Utilisateurs_et_groupes/Utilisateurs_et_groupes.biar$\n"
FileWrite $0 "action=exportXML$\n"
FileWrite $0 "userName=Administrator$\n"
FileWrite $0 "password=xxxxxxx$\n"
Filewrite $0 "CMS=localhost:6400$\n"
FileWrite $0 "authentication=secEnterprise$\n"
FileWrite $0 "exportDependencies=true$\n"
FileWrite $0 "exportQuery=select * from ci_infoobjects where SI_ancestor = 20$\n"
FileWrite $0 "exportQueriesTotal=1"
CreateDirectory "C:\BIAR\backups\Utilisateurs_et_groupes"

SectionEnd


Section -FinishSection

; WriteRegStr HKLM "Software\${APPNAME}" "" "$INSTDIR"
; WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}"
; WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$INSTDIR\uninstall.exe"
WriteUninstaller "$INSTDIR\uninstall.exe"

SectionEnd

;Déscription des composants
;--------------------------

!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Section1} "Script de sauvegarde"
!insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Sauvegarde de tous les dossiers"
!insertmacro MUI_DESCRIPTION_TEXT ${Section3} "Sauvegarde de tous les Dossiers personnels"
!insertmacro MUI_DESCRIPTION_TEXT ${Section4} "Sauvegarde de tous les univers"
!insertmacro MUI_DESCRIPTION_TEXT ${Section5} "Sauvegarde tous les utilisateurs"
!insertmacro MUI_FUNCTION_DESCRIPTION_END

;-----------------------------------------------
;Désinstalleur
;-----------------------------------------------

Section Uninstall

;Suppression du registre
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"
DeleteRegKey HKLM "SOFTWARE\${APPNAME}"

;Suppression du désinstalleur
Delete "$INSTDIR\uninstall.exe"

;Suppression des raccourcis
Delete "$DESKTOP\Sauvegardes automatisées.lnk"
Delete "$SMPROGRAMS\Sauvegardes automatisées\Sauvegardes automatisées.lnk"
Delete "$SMPROGRAMS\Sauvegardes automatisées\Uninstall.lnk"
Delete "$SMPROGRAMS\Sauvegardes automatisées"

;Suppression du script
Delete "$INSTDIR\Sauvegardes.bat"

;Suppression de Dossiers public
Delete "$INSTDIR\Dossiers_publics.properties"
delete "$INSTDIR\backups\Dossiers_public"

;Suppression de Dossiers personnels
Delete "$INSTDIR\Dossiers_personnels.properties"
Delete "$INSTDIR\backups\Dossiers_personnels"

;Suppression de Univers
Delete "$INSTDIR\Univers.properties"
Delete "$INSTDIR\backups\Univers"

;Suppression de Utilisateurs et groupes
Delete "$INSTDIR\Utilisateurs_et_groupes.properties"
Delete "$INSTDIR\backups\Utilisateurs_et_groupes"

;Supression des répertoires restants
RMDir "$SMPROGRAMS\Sauvegardes automatisées"
RMDir "$INSTDIR\"

SectionEnd

;-----------------------------------------------
;Langue de l'installeur
;-----------------------------------------------

!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_RESERVEFILE_LANGDLL

Function .onInit

!insertmacro MUI_LANGDLL_DISPLAY

FunctionEnd


=========================================================================================================================================================

Maintenant que vous avez le code sous les yeux, je vais pouvoir m'expliquer.

Dans les sections 2;3;4 et 5 se trouve des fichiers ".properties" que je créer selon le choix de l'utilisateur 'dans la page de composants).
exemple d'une section :

Section "Dossiers publics" Section2

SetOverwrite on

SetOutPath "C:\BIAR"

Fileopen $0 "C:\BIAR\Dossiers_publics.properties" a
FileWrite $0 "exportBiarLocation=C:/BIAR/backups/Dossiers_publics/Dossiers_publics.biar$\n"
FileWrite $0 "action=exportXML$\n"
FileWrite $0 "userName=Administrator$\n"
FileWrite $0 "password=xxxxxxx$\n" <====
Filewrite $0 "CMS=localhost:6400$\n"
FileWrite $0 "authentication=secEnterprise$\n"
FileWrite $0 "exportDependencies=true$\n"
FileWrite $0 "exportQuery=select * from ci_infoobjects where SI_ancestor = 23$\n"
FileWrite $0 "exportQueriesTotal=1"
CreateDirectory "C:\BIAR\backups\Dossiers_publics"

SectionEnd

A l'endroit indiqué par la flèche rouge (<===) se trouve le mot de passe de la plateforme (nécessaire à mes sauvegardes pour se connecter au référentiel) qui bien sur est différent pour chaque client. Ma demande est donc : comment faire pour créer une page "dialog" pour demander à l'utilisateur de saisir son mot de passe et récupérer cette saisie afin de la glisser à l'endroit prévu (<===) à la place des xxxxxxx ?

j'ai également une autre demande, plus ou moins similaire, qui consiste à demander au client la fréquence et l'heure à laquelle il veut que la sauvegarde s'execute afin de créer un batch (qui se lancera à la fin de l'installation) qui me planifie une tâche avec le planificateur windows. Même principe, récupérer la saisie de l'utilisateur et l'insérer dans une section (quitte à écrire la ligne complète si c'est trop compliqué d'écrire à la suite).

Merci de m'avoir lu, désolé le post est un peu long, mais je voulais être le plus explicite possible.

D'avance merci de vos réponses.
Best regards
Mickaël.
 
Bonsoir mlegrand,

Tu as de la chance, depuis quelques semaines je repasse par ici à peu près tous les jours pour suivre les demandes d'évolutions du Native de Warband... ce qui n'est pas ta préoccupation à ce que j'ai compris. Mais ce  n'est pas un problème, j'assume mon tutoriel sur NSIS quel que soit le contexte.

Une saisie utilisateur "libre", en quelque sorte, c'est ce que tu souhaites. Tu veux saisir un mot de passe, une heure, enfin des informations très spécifiques. Là, brut de fonderie, je t'avoue que je sèche. Le principe général de NSIS est de permettre la programmation facile des pages d'installation classiques, ce qu'il fait très bien. Est-ce à dire que la création de page atypiques n'est pas possible ? Non, mais on dépasse alors de loin l'utilisation standard de NSIS, qui est de se servir de pages préprogrammées.

Quand on lit la documentation de l'outil, on voit que les pages standard ont été réalisées en s'appuyant sur des macros réalisées dans un langage un peu plus complexe à appréhender... le fameux nsDialogs évoqué dans mon tutoriel. Et pour ma part je ne suis pas allé jusque là. Or il semble que tu as besoin de réaliser une page spécifique pour ton utilisation, donc il te faudrait la construire à l'aide de nsDialogs.

Peut-être y a-t-il des tutoriels dédiés ? Pour ma part les pages standard m'ont suffit pour réaliser les installeurs de M&B et ses mods, donc je n'ai pas creusé le sujet. Maintenant je vais être très honnête : cela va faire trois ans que je n'ai plus généré d’installeur avec NSIS, le système a peut-être évolué depuis, peut-être est-il désormais prévu de pouvoir générer facilement des questions exotiques...

Réagit à mon message, et si tu trouves le moyen de faire ce que tu désires, n'hésites pas à nous dire comment tu as fait, cela pourrait toujours nous intéresser.

Et quoi qu'il en soit, un grand bravo pour ton script qui est d'un excellent niveau !  :smile:

Bon courage !
 
Bonjour daneel,

Avant tout merci de ta réponse même si, comme tu l'imagine, elle n'est pas celle que j'attendais  :wink:

Je continue mes recherches, mais j'ai réellement l'impression que c'est possible, car il est possible de mettre des réponses utilisateur dans un fichier temps. Je pense (et sans certitudes) qu'il doit être possible de créer une variable ou quelque chose comme ça avec ce résultat.

Le truc, c'est que je ne veux pas créer une nouvelle page (ou rien de très exotique), je peux à la limite utiliser une page existante et la "détourner" (ce n'est pas un problème) c'est surtout d'utiliser la réponse qui me pose soucis. Après, en passant par un .ini, il est possible de stocker une réponse et la mettre dans un fichier temps et de lire cette réponse (un peu comme un check de key code).

Enfin, je vais commencer à spéculer et partir dans tous les sens car je ne sais pas encore comment je vais procéder  :idea:

Encore merci de ta réponse, et de ton tuto qui m'a quand même permis de me lancer et écrire le début de mon script. Merci également pour le "excellent niveau", je n'aurais pas cru lire ceci, je n'ai jamais codé (enfin juste du script de base par ci par là mais sans plus) et c'est réellement mon premier script NSIS (j'ai commencé à la date de mon script ^^ pour te dire), qui à mon sens n'est vraiment pas compliqué, je ne fais pas grand chose dedans. J'ai juste créer mes ".properties" par l'installeur en prévision de pouvoir mettre une variable (ou autre) à la place du password ^^

Mais sache qu'en effet, l'on peut faire beaucoup plus que l'on ne pense avec NSIS. Affaire à suivre  :wink: (compte sur moi pour mettre une réponse dès que j'aurais trouvé)

Best regards.
Mickaël.
 
Mickaël,

Le "excellent niveau" n'était pas là  juste pour faire plaisir. Je vois que non seulement tu as tout compris de la syntaxe générale, mais en plus tu as suffisamment lu la documentation officielle pour utiliser des instructions telles que FileOPen et FileWrite dont je n'ai pas parlé, et même générer le script de désinstallation que je réservais pour le tome 2 de mon tutoriel... commencé (si si !) mais jamais fini pour cause de switch sur un autre sujet qui m'a pris toute l'année suivante (mais c'est pas une raison, je devrais le finir !). Et crois-en un ancien développeur professionnel : ce genre de truc, on le comprend ou on n'y pige que dalle, et toi, visiblement, la logique du code, ça te parle !

En fait il te reste juste à trouver la façon la plus simple de poser une question et de récupérer la réponse avant de la balancer dans un FileWrite. Peut-être effectivement est-ce facile si on prend le temps de creuser la question, ce que je n'ai jamais eu à faire. Et sinon, peut-être que la lecture du source des macros de création de pages de ModernUI 2 (les fameuses "!Insertmacro MUI_PAGE_XXX) te montrera que créer une nouvelle page est plus simple que tu ne te l'imagines : si tu as été capable de générer ce script, je suis sûr que tu dois pouvoir t'inspirer du code de génération des pages existantes pour en créer une nouvelle.

Allez, continue, je suis sûr que tu vas trouver une solution très élégante !

Daneel
 
Back
Top Bottom