Header image
Jean-René DANIS

 

   Retour à Script d'installation silencieuse                

  


Scripts d'installation silencieuse
VIDEOLAN VLC 0.9.8a

 

Voici un script qui permet d'installer VideoLan VLC 0.9.8a sans assistance en Kixtart.
Le script détecte s'il y a déjà une version de VLC et tente de la désinstaller en ligne de commande.

Ligne de commande : "vlc-0.9.8a-win32.exe /S"

Principe

Mettre les 3 fichiers suivants dans le même dossier :

vlc-0.9.8a-win32.exe : fichier d'installation disponible au téléchargement sur ce site : http://www.videolan.org/
install.bat : décrit ci-dessous
vlc-0.9.8a-win32.kix : décrit ci-dessous

Pour installer VLC 0.9.8a de manière silencieuse : double cliquer sur install.bat

Détail des scripts nécessaires

Contenu du fichier install.bat

Prompt $H
cls
@echo OFF

@echo ..........................
@echo INSTALLATION DE VLC 0.9.8a
@echo JEAN-RENE DANIS 26/01/09
@echo ..........................

IF NOT EXIST %WINDIR%\system32\kix32.exe (
    @echo ......................................................................
    @echo CE SCRIPT NECESSITE LA PRESENCE DU FICHIER %WINDIR%\system32\kix32.exe
    @echo VOUS POUVEZ LE TELECHARGER ET LE COPIER A PARTIR DU SITE WEB :
    @echo www.kixtart.org
    @echo ......................................................................
    pause
) ELSE (
    @echo ON
    kix32 vlc-0.9.8a-win32.kix
)
Prompt




Contenu du vlc-0.9.8a-win32.kix (télécharger ce script en pdf couleur ici)

; installation de VLC 0.9.8a à partir du fichier vlc-0.9.8a-win32.exe
; Désinstallation de VLC s'il est déjà installé
; JEAN-RENE DANIS 26/01/2009

;Liste des variable(s)
;variable qui définit l'emplacement du fichier log
$DossierDeLog = "%systemdrive%\install\log\"

;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

;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

$CleRegistreVLC = KeyExist("HKLM\SOFTWARE\VideoLan\VLC")
If $CleRegistreVLC
   ? "Une clé de registre VLC a été trouvé, lecture des informations : dossier d'installation et version existante de VLC"
   $DossierInstallVLC = READVALUE ("HKLM\SOFTWARE\VideoLan\VLC", "InstallDir")
   $VersionVLCExistant = READVALUE ("HKLM\SOFTWARE\VideoLan\VLC", "Version")
   ? "$DossierInstallVLC : $VersionVLCExistant"
Endif

;Verifie si le programme est déjà installé et tente de le désinstaller
$prgatester = "$DossierInstallVLC\vlc.exe"
IF EXIST ($prgatester)
    ? "Le programme est déjà installé : tentative de déinstallation automatique"
    IF EXIST ("$DossierInstallVLC\uninstall.exe")
        ; désinstallation du programme CDBurnerXP
        $commande = '"$DossierInstallVLC\uninstall.exe" /S'
        ? $commande
        shell '%COMSPEC% /c ' + $commande
        IF @ERROR <> 0
           ? "Erreur n° " + @ERROR
           ? "La désinstallation a échouée : il faut faire une désinstallation manuelle"
           GOTO "finerreur"
        ENDIF
    ENDIF
    ; attends la fin de la désinstallation
    $UninstallVLCExist = 0
    WHILE $UninstallVLCExist = 0
        sleep 5
        IF NOT EXIST ("$DossierInstallVLC\uninstall.exe")
            $UninstallVLCExist = 1
        ENDIF
    LOOP
    sleep 5
    IF EXIST ("$ALLUSERPRG\VideoLAN")
        ;effacement d'un dossier du menu démarrer
        DELPROGRAMGROUP ("VideoLAN",1)
        IF NOT EXIST ("$ALLUSERPRG\VideoLAN")
           ? "Le dossier : $ALLUSERPRG\VideoLAN a été supprimé"
        ELSE
           ? "Le dossier : $ALLUSERPRG\VideoLAN n'a pas été supprimé complétement"
        ENDIF
    ENDIF
    IF EXIST ("$ALLUSERPRG\Utilitaires\VideoLAN")
        MOVE "$ALLUSERPRG\Utilitaires\VideoLAN\" "$ALLUSERPRG\VideoLAN\"
        DELPROGRAMGROUP ("VideoLAN",1)
        IF NOT EXIST ("$ALLUSERPRG\VideoLAN")
          ? "Le dossier : $ALLUSERPRG\Utilitaires\VideoLAN a été supprimé"
        ELSE
          ? "Le dossier : $ALLUSERPRGVideoLAN ou  $ALLUSERPRG\Utilitaires\VideoLAN n'a pas été supprimé complétement"
        ENDIF
     ENDIF
ELSE
   ? "Le programme n'est pas déjà installé : lancement de l'installation."
ENDIF

cd @SCRIPTDIR\

;installation du programme
$commande = 'vlc-0.9.8a-win32.exe /S'
? $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"
? "Organisation des raccourcis"
MOVE $ALLUSERPRG + '\VideoLAN' $ALLUSERPRG + "\Utilitaires\VideoLAN\"

;efface du raccourci sur le bureau
del "$ALLUSERBUREAU\VLC media player.lnk"

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("")


 

 

Vous pouvez poster vos commentaires sur mon blog : http://installation-silencieuse.blogspot.com