Précédent | Sommaire | Suivant

4.7 Fonctions

Les fonctions ressemblent presque aux Sections dans le fait qu'elles ne contiennent aucune ou plusieurs instructions. Les fonctions ne sont pas appelées par l'installation directement, elle peuvent être appelées par des Sections en utilisant l'instruction Call. Des fonctions d'interaction seront appelées par l'installation lorsque certains événements se produiront.

Les fonctions doivent être déclarées en dehors d'une Section ou d'une autre Fonction.

4.7.1 Commandes des fonctions

4.7.1.1 Function

[nom_fonction]

Commence et ouvre une nouvelle fonction. Les noms de fonctions commençant par "." (Ex. ".NimporteQuoi") sont généralement réservées pour les fonctions d'interaction. Les noms de fonctions commençant par "un." sont des fonctions générées pour la désinstallation. Ainsi, des sections normales d'installation ne pourront pas appeler des fonctions de désinstallation, et la section de désinstallation ne pourra pas appeler des fonctions normales d'installation.

Function func
  # des commandes
FunctionEnd

Section
  Call func
SectionEnd

4.7.1.2 FunctionEnd

Cette commande ferme la fonction ouverte.

4.7.2 Les fonctions d'interaction

Vous pouvez utiliser des fonctions d'interaction qui possèdent leur nom propre, et qui seront appelées pendant l'installation à certains à certains moments prédéfinis. Voici ci-dessous la liste des fonctions disponibles:

4.7.2.1 Interactions pendant l'installation

4.7.2.1.1 .onGUIInit

Cette fonction est appelée juste avant que la première page ne soit chargées et que la fenêtre d'installation ne soit affichée, vous permettant alors de personnaliser l'interface.

Exemple:

 !include "WinMessages.nsh"

 Function .onGUIInit
   # 1028 est l'id du contrôle du texte de la marque
   GetDlgItem $R0 $HWNDPARENT 1028
   CreateFont $R1 "Tahoma" 10 700
   SendMessage $R0 ${WM_SETFONT} $R1 0
   # définit la couleur d'arrière-plan à blanc et la couleur du texte à rouge
   SetBkColor $R0 0x00FFFFFF
 FunctionEnd
4.7.2.1.2 .onInit

Cette fonction sera appelée lorsque l'installation aura presque terminée de s'initialiser. Si la fonction '.onInit' appelle Abort, l'installation se fermera alors automatiquement.

Voici quelques exemples de ce qui peut être utilisé:

 Function .onInit
   MessageBox MB_YESNO "Ceci démarrera l'installation. Continuer ?" IDYES NoAbort
     Abort ; fait fermer l'installation
   NoAbort:
 FunctionEnd

ou :

 Function .onInit
   ReadINIStr $INSTDIR $WINDIR\wincmd.ini Configuration InstallDir
   StrCmp $INSTDIR "" 0 NoAbort
     MessageBox MB_OK "Windows Commander non trouvé. Impossible d'obtenir un répertoire pour l'installation."
     Abort ; fait fermer l'installation
   NoAbort:
 FunctionEnd
4.7.2.1.3 .onInstFailed

Cette fonction est appelée lorsque l'utilisateur clique sur le bouton 'Annuler', après un échec de l'installation (s'il ne peut extraire un fichier, ou que le script d'installation utilise la commande Abort).

Exemple:

  Function .onInstFailed
    MessageBox MB_OK "Vous serez plus chanceux la prochaine fois."
  FunctionEnd
4.7.2.1.4 .onInstSuccess

Cette fonction est appelée lorsque l'installation a réussie, juste avant que la fenêtre d'installation ne se ferme (ce qui peut être après que l'utilisateur ait cliqué sur 'Fermer' si AutoCloseWindow est défini à false).

Exemple:

  Function .onInstSuccess
    MessageBox MB_YESNO "Bravo, ça a marché. Afficher le lisez-moi ?" IDNO NoReadme
      Exec notepad.exe ; fait afficher le lisez-moi ou bien ce que vous voulez.
    NoReadme:
  FunctionEnd
4.7.2.1.5 .onGUIEnd

Cette fonction est appelée juste après la fermeture de l'installation. Utilisez-la pour libérer, si besoin est, tous les plug-ins relatifs à l'interface utilisateur.

4.7.2.1.6 .onMouseOverSection

Cette fonction est appelée lorsque la position de la souris au dessus des sections est modifiée. Cela vous permet de définir une description pour chaque section par exemple. L'id de la section sur laquelle la souris est positionnée est stockée, temporairement, dans $0.

Exemple:

  Function .onMouseOverSection
    FindWindow $R0 "#32770" "" $HWNDPARENT
    GetDlgItem $R0 $R0 1043 ; description (doit être ajouté à l'ui)

    StrCmp $0 0 "" +2
      SendMessage $R0 ${WM_SETTEXT} 0 "STR:description de la première section"

    StrCmp $0 1 "" +2
      SendMessage $R0 ${WM_SETTEXT} 0 "STR:description de la seconde section"
  FunctionEnd
4.7.2.1.7 .onRebootFailed

Cette fonction est appelée si Reboot échoue. WriteUninstaller, plug-ins, File et WriteRegBin ne doivent pas être utilisés dans cette fonction.

Exemple:

 Function .onRebootFailed
   MessageBox MB_OK|MB_ICONSTOP "Echec du redémarrage. Redémarrez manuellement." /SD IDOK
 FunctionEnd
4.7.2.1.8 .onSelChange

Appelée lorsque la sélection est modifiée dans la page des composants. Utile lorsqu'elle est combinée avec SectionSetFlags et SectionGetFlags.

Les changements de sélection incluent le changement de la sélection de section et le type d'installation.

4.7.2.1.9 .onUserAbort

Cette fonction est appelée lorsque l'utilisateur presse le bouton 'Annuler', alors que l'installation n'est pas encore réellement arrêtée. Si cette fonction appelle Abort, l'installation ne sera pas abandonné.

Exemple:

 Function .onUserAbort
   MessageBox MB_YESNO "Abandonner l'installation ?" IDYES NoCancelAbort
     Abort ; empeche l'installation de se fermer
   NoCancelAbort:
 FunctionEnd
4.7.2.1.10 .onVerifyInstDir

Cette fonction permet de contrôler si un répertoire d'installation est valide ou pas pour votre installation. Ce code sera appelée à chaque modification du répertoire d'installation par l'utilisateur, et ne devrait pas afficher des c*** telles qu'une MessageBox ou autre. Si la fonction appelle Abort, le répertoire d'installation stocké dans $INSTDIR restera incorrect.

Example:

  Function .onVerifyInstDir
    IfFileExists $INSTDIR\Winamp.exe PathGood
      Abort ; si $INSTDIR n'est pas un répertoire Winamp, ne laissez rien installer dedans
    PathGood:
  FunctionEnd

4.7.2.2 Interaction durant la désinstallation

4.7.2.2.1 un.onGUIInit

Cette focntion est appelée juste avant que la première page ne soit chargée, et même avant que la fenêtre de la désinstallation ne soit affichée, vous permettant de personnaliser l'interface.

Allez voir .onGUIInit pour un exemple.

4.7.2.2.2 un.onInit

Cette fonction sera appelée lorsque l'installation aura presque terminée de s'initialiser. Si la fonction '.onInit' appelle Abort, l'installation se fermera alors automatiquement. Notez que cette fonction peut vérifier et/ou modifier $INSTDIR si nécessaire.

Voici deux exemples d'utilisation de cette fonction:

  Function un.onInit
    MessageBox MB_YESNO "Ceci lancera la désinstallation. Continuer ?" IDYES NoAbort
      Abort ; fait fermer la désinstallation.
    NoAbort:
  FunctionEnd

ou:

  Function un.onInit
    IfFileExists $INSTDIR\myfile.exe found
      Messagebox MB_OK "Dossier de désinstallation incorrect"
      Abort
    found:
  FunctionEnd
4.7.2.2.3 un.onUninstFailed

Cette fonction est appelée lorsque l'utilisateur clique sur le bouton 'Annuler', après un échec de l'installation (si le script d'installation utilise la commande Abort ou qu'une commande a rencontré une erreur)).

Exemple:

  Function un.onUninstFailed
    MessageBox MB_OK "Pas de chance..."
  FunctionEnd
4.7.2.2.4 un.onUninstSuccess

Cette fonction est appelée lorsque l'installation a réussie, juste avant que la fenêtre d'installation ne se ferme (ce qui peut être après que l'utilisateur ait cliqué sur 'Fermer' si AutoCloseWindow est défini à false).

Exemple:

  Function un.onUninstSuccess
    MessageBox MB_OK "Bravo, vous l'avez viré."
  FunctionEnd
4.7.2.2.5 un.onGUIEnd

Cette fonction est appelée juste après la fermeture de la désinstallation. Utilisez-la pour libérer, si besoin est, tous les plug-ins relatifs à l'interface utilisateur.

4.7.2.2.6 un.onRebootFailed

Cette fonction est appelée si Reboot échoue. WriteUninstaller, plug-ins, File et WriteRegBin ne doivent pas être utilisés dans cette fonction.

Exemple:

 Function un.onRebootFailed
   MessageBox MB_OK|MB_ICONSTOP "Echec du redémarrage. Redémarrez manuellement." /SD IDOK
 FunctionEnd
4.7.2.2.7 un.onUserAbort

Cette fonction est appelée lorsque l'utilisateur presse le bouton 'Annuler', alors que l'installation n'est pas encore réellement arrêtée. Si cette fonction appelle Abort, l'installation ne sera pas abandonnée.

Exemple:

  Function un.onUserAbort
    MessageBox MB_YESNO "Abandonner la désinstallation ?" IDYES NoCancelAbort
      Abort ; fait que la désinstallation ne s'arrêtera pas
    NoCancelAbort:
  FunctionEnd

Précédent | Sommaire | Suivant


A propos | Contacts | Publicité | Info légales | © Todae 2006-2008

Sites partenaires : discount | avis rémunérés| sorties DVD | Winamp