![]() |
|
Précédent | Sommaire | Suivant 4.7 FonctionsLes 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 fonctions4.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 FunctionEndCette commande ferme la fonction ouverte. 4.7.2 Les fonctions d'interactionVous 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'installation4.7.2.1.1 .onGUIInitCette 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 .onInitCette 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 .onInstFailedCette 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 .onInstSuccessCette 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 .onGUIEndCette 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 .onMouseOverSectionCette 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 .onRebootFailedCette 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 .onSelChangeAppelé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 .onUserAbortCette 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 .onVerifyInstDirCette 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ésinstallation4.7.2.2.1 un.onGUIInitCette 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.onInitCette 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.onUninstFailedCette 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.onUninstSuccessCette 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.onGUIEndCette 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.onRebootFailedCette 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.onUserAbortCette 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 |
||
|