Blame | Last modification | View Log | RSS feed
;*****************************************************************; Author : Hugues DOILLON; Date : 03/2007; Modifié :;*****************************************************************!include "FileFunc.nsh"!include "LogicLib.nsh"!include "InformationApplication.nsh"!insertmacro GetFileExt; Spécifie si oui ou non l'installation sera silencieuseSilentInstall silent;ddp; OutFile "Installation_librairie_temp\SetupInstallationLibrairie.exe"Function .onInit; Fichier écrit contenant la liste des librairies à installerFileOpen $R0 "${GBE_BINDIR}\InstallationLibrairie.nsh" w;-------------------------------------------------------------------------------------------------------------------------------;-------------------------------------------------------------------------------------------------------------------------------FileWrite $R0 "!macro SectionLibrairies"; Retour à la ligneFileWriteByte $R0 "13"FileWriteByte $R0 "10"; Parcourt des librairies du répertoire SysDir_DLLFindFirst $R1 $R2 "${LIBRAIRIE_SYSDIR}\*.*"loop2:StrCmp $R2 "" done2StrCmp $R2 '.' nothing2StrCmp $R2 '..' nothing2StrCmp $R2 '.svn' nothing2; Commande d'enregistrement des librairies enrgistré dans le fichierFileWrite $R0 "!insertmacro InstallLib DLL 0 REBOOT_PROTECTED $\"${LIBRAIRIE_SYSDIR}\$R2$\" $\"$SYSDIR\$R2$\" $\"$SYSDIR$\""; Retour à la ligneFileWriteByte $R0 "13"FileWriteByte $R0 "10"nothing2:FindNext $R1 $R2Goto loop2done2:;-------------------------------------------------------------------------------------------------------------------------------; Parcourt des librairies du répertoire SysDir_DLLFindFirst $R1 $R2 "${LIBRAIRIE_REGISTRED_SYSDIR}\*.*"loop3:StrCmp $R2 "" done3StrCmp $R2 '.' nothing3StrCmp $R2 '..' nothing3StrCmp $R2 '.svn' nothing3; Recupere l extension${GetFileExt} "$R2" $R3StrCmp $R3 "tlb" 0 else31FileWrite $R0 "!insertmacro InstallLib TLB 0 REBOOT_PROTECTED $\"${LIBRAIRIE_REGISTRED_SYSDIR}\$R2$\" $\"$SYSDIR\$R2$\" $\"$SYSDIR$\""Goto done31else31:FileWrite $R0 "!insertmacro InstallLib REGDLL 0 REBOOT_PROTECTED $\"${LIBRAIRIE_REGISTRED_SYSDIR}\$R2$\" $\"$SYSDIR\$R2$\" $\"$SYSDIR$\""done31:; Retour à la ligneFileWriteByte $R0 "13"FileWriteByte $R0 "10"nothing3:FindNext $R1 $R2Goto loop3done3:;-------------------------------------------------------------------------------------------------------------------------------; Parcourt des librairies du répertoire Librairie_ProgramFilesFindFirst $R1 $R2 "${LIBRAIRIE_PROGRAMFILES}\*.*"loop4:StrCmp $R2 "" done4StrCmp $R2 '.' nothing4StrCmp $R2 '..' nothing4StrCmp $R2 '.svn' nothing4; Commande d'enregistrement des librairies enrgistré dans le fichierFileWrite $R0 "!insertmacro InstallLib DLL 0 NOREBOOT_PROTECTED $\"${LIBRAIRIE_PROGRAMFILES}\$R2$\" $\"$$INSTDIR\$R2$\" $\"$$INSTDIR$\""; Retour à la ligneFileWriteByte $R0 "13"FileWriteByte $R0 "10"nothing4:FindNext $R1 $R2Goto loop4done4:;-------------------------------------------------------------------------------------------------------------------------------; Parcourt des librairies du répertoire Librairie_ProgramFiles_RegisterFindFirst $R1 $R2 "${LIBRAIRIE_REGISTRED_PROGRAMFILES}\*.*"loop5:StrCmp $R2 "" done5StrCmp $R2 '.' nothing5StrCmp $R2 '..' nothing5StrCmp $R2 '.svn' nothing5; Recupere l extension${GetFileExt} "$R2" $R3StrCmp $R3 "tlb" 0 else51FileWrite $R0 "!insertmacro InstallLib TLB 0 NOREBOOT_PROTECTED $\"${LIBRAIRIE_REGISTRED_PROGRAMFILES}\$R2$\" $\"$$INSTDIR\$R2$\" $\"$$INSTDIR$\""Goto done51else51:FileWrite $R0 "!insertmacro InstallLib REGDLL 0 NOREBOOT_PROTECTED $\"${LIBRAIRIE_REGISTRED_PROGRAMFILES}\$R2$\" $\"$$INSTDIR\$R2$\" $\"$$INSTDIR$\""done51:; Retour à la ligneFileWriteByte $R0 "13"FileWriteByte $R0 "10"nothing5:FindNext $R1 $R2Goto loop5done5:FileWrite $R0 "!macroend"FileWriteByte $R0 "13"FileWriteByte $R0 "10";-------------------------------------------------------------------------------------------------------------------------------;-------------------------------------------------------------------------------------------------------------------------------; Fonction qui désinstalle l'applicationFileWrite $R0 "!macro DesinstalleApplication"FileWriteByte $R0 "13"FileWriteByte $R0 "10"; Parcourt des librairies du répertoire Librairie_ProgramFiles; NOTSHARED - La librairie n'est pas partagée; NOREBOOT_NOTPROTECTED Averti l'utilisateur quand la librairie est utilisée. L'utilisateur devra fermer les applications l'utilisant.; Met à jour la librairie sans vérifier la protection de fichier Windows.FindFirst $R1 $R2 "${LIBRAIRIE_PROGRAMFILES}\*.*"loopU1:StrCmp $R2 "" doneU1StrCmp $R2 '.' nothingU1StrCmp $R2 '..' nothingU1StrCmp $R2 '.svn' nothingU1; Commande d'enregistrement des librairies enrgistré dans le fichierFileWrite $R0 "!insertmacro UnInstallLib DLL NOTSHARED NOREBOOT_PROTECTED $\"$$INSTDIR\$R2$\""; Retour à la ligneFileWriteByte $R0 "13"FileWriteByte $R0 "10"nothingU1:FindNext $R1 $R2Goto loopU1doneU1:; Parcourt des librairies du répertoire Librairie_ProgramFiles_RegisterFindFirst $R1 $R2 "${LIBRAIRIE_REGISTRED_PROGRAMFILES}\*.*"loopU2:StrCmp $R2 "" doneU2StrCmp $R2 '.' nothingU2StrCmp $R2 '..' nothingU2StrCmp $R2 '.svn' nothingU2; Recupere l extension${GetFileExt} "$R2" $R3StrCmp $R3 "tlb" 0 elseU21FileWrite $R0 "!insertmacro UnInstallLib TLB NOTSHARED NOREBOOT_PROTECTED $\"$$INSTDIR\$R2$\""Goto doneU21elseU21:FileWrite $R0 "!insertmacro UnInstallLib REGDLL NOTSHARED NOREBOOT_PROTECTED $\"$$INSTDIR\$R2$\""doneU21:; Retour à la ligneFileWriteByte $R0 "13"FileWriteByte $R0 "10"nothingU2:FindNext $R1 $R2Goto loopU2doneU2:; Parcourt des fichiers du répertoire Application_ProgramFilesFindFirst $R1 $R2 "${APPLICATION_PROGRAMFILES}\*.*"loopU3:StrCmp $R2 "" doneU3StrCmp $R2 '.' nothingU3StrCmp $R2 '..' nothingU3StrCmp $R2 '.svn' nothingU3${If} ${FileExists} "${APPLICATION_PROGRAMFILES}\$R2\*.*"; On supprime le dossierFileWrite $R0 "RMDir /r $\"$$INSTDIR\$R2$\""${Else}; On supprime le fichierFileWrite $R0 "Delete $\"$$INSTDIR\$R2$\""${EndIf}; Retour à la ligneFileWriteByte $R0 "13"FileWriteByte $R0 "10"nothingU3:FindNext $R1 $R2Goto loopU3doneU3:FileWrite $R0 "RMDir $\"$$INSTDIR$\""FileWriteByte $R0 "13"FileWriteByte $R0 "10"FileWrite $R0 "!macroend"FileWriteByte $R0 "13"FileWriteByte $R0 "10";-------------------------------------------------------------------------------------------------------------------------------FindCLose $R0FunctionEndSectionSectionEnd