;installation de CD BURNER XP PRO 4.2.2.984 à partir des fichiers 7cdbxp_setup_4.2.2.984.exe et NeroBurnRightsInstaller.exe
;JEAN-RENE DANIS 02/10/08
;Mise à jour le 09/01/09 : nouvelle routine pour connettre l'emplacement du dossier ProgramFiles x86 pour les systemes d'exploitation 64bits
;Liste des variable(s)
;variable qui définit l'emplacement du fichier log
$DossierDeLog = "%systemdrive%\install\log\"
;variable qui définit des fichiers d'installation (copie du CD) :
$dossierinstall = '%systemdrive%\install'
;variable qui définit le dossier de 7Zip ou se trouve 7z.exe :
$SEI_7Z = '%SYSTEMDrive%\Program Files\7-Zip'
;Création du dossier pour mettre le fichier log si ce dossier n'existe pas
IF NOT EXIST ($DossierDeLog)
MD $DossierDeLog
ENDIF
;Ouverture du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
?? "Ouverture de " + @SCRIPTNAME + " à " + @TIME
ELSE
? "Impossible de créer le fichier log"
GOTO "finerreur"
ENDIF
;Chargement d'une fonction : GetExtFileProperties
;Ce script charge une fonction sauf si elle a déjà été chargée.
;Verifier que le nom de la fonction à chargée est bien présent dans
;le nom de la variable $exist...des 2ieme et 7ieme lignes ci-dessou
$emplacementfonction = "GetExtFileProperties.udf"
IF $existGetExtFileProperties = "exist"
? "La fonction " + $emplacementfonction + " a déjà été chargée"
ELSE
IF EXIST ($emplacementfonction)
CALL $emplacementfonction
$existGetExtFileProperties = "exist"
? "La fonction " + $emplacementfonction + " a été chargée"
ELSE
? "La fonction " + $emplacementfonction + " n'a pas été trouvée"
ENDIF
ENDIF
;determine le chemin du dossiers "program files" pour les applications 32 bits
;Dans le cas d'un système d'exploitation 64 bits : les applications 32 bits sont dans le dossiers ProgramFilesDir (x86).
$PRGDIR=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","ProgramFilesDir (x86)")
IF $PRGDIR =""
;Si ProgramFilesDir (x86) n'exite pas : c'est que le sysème d'exploitation est 32bits, dans ce cas les applications 32bits sont dans le dossier ProgramFilesDir.
$PRGDIR=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","ProgramFilesDir")
ENDIF
? 'Chemin du dossiers "program files" pour les applications 32bits : $PRGDIR'
;determine le chemin du burreau de tous les utilisateurs
$ALLUSERBUREAU=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Common Desktop")
? "Chemin du bureau : " + $ALLUSERBUREAU
;determine le chemin du menu démarrer\programmes de tous les utilisateurs
$ALLUSERPRG=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Common Programs")
? "Chemin du menu démarrer\programmes : " + $ALLUSERPRG
;Verifie si le programme est déjà installé et affiche sa version
$prgatester = $PRGDIR + "\CDBurnerXP\cdbxpp.exe"
IF EXIST ($prgatester)
IF @PRODUCTTYPE = "Windows Vista Business Edition"
? "Le programme est déjà installé à la version : " + GetExtFileProperties($prgatester,145)
ELSE
? "Le programme est déjà installé à la version : " + GetExtFileProperties($prgatester,37)
ENDIF
GOTO "finerreur"
ELSE
? "Le programme n'est pas déjà installé : lancement de l'installation."
ENDIF
cd @SCRIPTDIR\
;installation du programme
$commande = 'cdbxp_setup_4.2.2.984.exe /sp /verysilent /norestart /nocancel'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
;Décompression du fichier
$fichieradecomp = 'NeroBurnRightsInstaller.exe'
$destinationdeladecomp = $dossierinstall + '\NeroBurnRightsInstaller'
$commande='"'+$SEI_7Z+'\7z.exe" x -o' + $destinationdeladecomp + ' ' + $fichieradecomp
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
;installation du programme
$commande = $dossierinstall + '\NeroBurnRightsInstaller\setup.exe /silent /burnrights:all'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
;Si le dossier "menu démarrer\Utilitaires" n'existe : le créer
IF ADDPROGRAMGROUP ("Utilitaires",1) = 0
? "Dossier Utilitaires créé ou exist déjà"
ELSE
? "Erreur création dossier Utilitaires"
GOTO "Finerreur"
ENDIF
;Déplacement du raccourci dans dossier "menu démarrer\utilitaires"
MOVE $ALLUSERPRG + '\CDBurnerXP' $ALLUSERPRG + "\Utilitaires\CDBurnerXP\"
;efface du raccourci sur le bureau
del "$ALLUSERBUREAU\CDBurnerXP.lnk"
;effacement d'un dossier
$dossierasupprimer = $dossierinstall + '\NeroBurnRightsInstaller'
del $dossierasupprimer + "\*.*" /c /f /s
rd $dossierasupprimer /s
IF NOT EXIST ($dossierasupprimer)
? "Le dossier : " + $dossierasupprimer + " a été supprimé"
ELSE
? "Le dossier : " + $dossierasupprimer + " n'a pas été supprimé complétement"
ENDIF
GOTO "fin"
;label de fin avec erreurs
:finerreur
? "fin du script d'installation : erreur"
;Ouverture du fichier log pour signaler la présence d'erreurs
IF RedirectOutput($DossierDeLog + "ERREUR_" + @SCRIPTNAME +".txt") = 0
?? "Ouverture de erreur_" + @SCRIPTNAME + " à " + @TIME
? "le script d'installation à rencontrer des erreurs : consulter le fichier log :"
? $DossierDeLog + @SCRIPTNAME +".txt"
ENDIF
sleep 5
;label de fin sans erreurs
:fin
? "fin du script d'installation"
;annule la redirection vers un fichier
RedirectOutput("")
|