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

Windows Discussion :

Problème NSIS : comment récupérer une saisie utilisateur et l'introduire dans une section ?


Sujet :

Windows

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème NSIS : comment récupérer une saisie utilisateur et l'introduire dans une section ?
    Bonjour,

    Je me suis lancé dans NSIS depuis peu et ai créer mon premier installeur. 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 cet 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 :
    =========================================================================================================================================================

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    ;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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    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.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut up
    Bonjour de retour sur NSIS (oui beaucoup de travail depuis ) je suis donc de retour et toujours avec mon problème !!!

    toujours aucunes idée ?

    Mickaël

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 303
    Points : 155
    Points
    155

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur de surface
    Inscrit en
    Février 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 87
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de surface

    Informations forums :
    Inscription : Février 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Pas trop d'info
    Bonjour,
    Moi aussi je recherches un peu les mêmes informations....
    utiliser les MUI / afficher des boîtes de dialogues... proposer des choix...
    mais invariablement je retombes sur les exemples NSIS qui sont quand même très ciblé.
    Pour l'instant les rares autres exemples que je trouves (comme le liens ci dessus) ne fonctionnent jamais... Je continue de chercher

Discussions similaires

  1. comment récupérer le dernier argument de chaque ligne dans une liste?
    Par sth56 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 22/03/2011, 14h02
  2. Réponses: 5
    Dernier message: 08/03/2010, 14h09
  3. Réponses: 1
    Dernier message: 17/10/2008, 09h55
  4. Réponses: 1
    Dernier message: 18/02/2008, 17h17
  5. Réponses: 3
    Dernier message: 07/06/2007, 19h47

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