Header image
Jean-René DANIS

 

   Retour à Script d'installation silencieuse                

  


Scripts d'installation silencieuse
Autodesk Inventor View 2009

 

Voici un script qui permet d'installer Autodesk Inventor View 2009 sans assistance en Kixtart.

Ligne de commande : "setup.exe /t /q /c INVENTORVIEW"

Autodesk Inventor View est un logiciel qui peut être téléchargé sur ce site : www.autodesk.com

Principe

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

autodesk_inventor_view_r2009_x86_fra.zip fichier d'installation d'Autodesk Inventor View 2009 pour windows 32 bits
autodesk_inventor_view_r2009_x64_fra.zip fichier d'installation d'Autodesk Inventor View 2009 pour windows 64 bits
install.bat : décrit ci-dessous
InventorView2009_FRA.kix : décrit ci-dessous
EnumProcess.udf : fonction Kixtart pour fermer un processus décrit ci-dessous

Pour installer Autodesk Inventor View 2009 de manière silencieuse : double cliquer sur install.bat

Détail des scripts nécessaires

Contenu du fichier install.bat

Prompt $H
cls

@echo ..................................
@echo INSTALLATION DE Inventor View 2009
@echo JEAN-RENE DANIS 16/10/08
@echo ..................................

kix32 InventorView2009_FRA.kix

Contenu du InventorView2009_FRA.kix (télécharger ce script en pdf couleur ici)

;installation de Inventor 2009 à partir des fichiers autodesk_inventor_view_r2009_x86_fra.zip ou autodesk_inventor_view_r2009_x64_fra.zip
;JEAN-RENE DANIS 16-10-08

;Liste des variable(s)
;variable qui définit l'emplacement du fichier log
$DossierDeLog = "%systemdrive%\install\log\"
;variable qui définit la destination temporaire :
$dossierprov = '%systemdrive%\install\InventorView2009_fra\'
;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

cd @SCRIPTDIR\

;Chargement d'une fonction : EnumProcess
;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 = "EnumProcess.udf"
IF $existEnumProcess = "exist"
? "La fonction " + $emplacementfonction + " a déjà été chargée"
ELSE
IF EXIST ($emplacementfonction)
CALL $emplacementfonction
$existEnumProcess = "exist"
? "La fonction " + $emplacementfonction + " a été chargée"
ELSE
? "La fonction " + $emplacementfonction + " n'a pas été trouvée"
ENDIF
ENDIF

;Verifie si le programme est déjà installé et affiche sa version
$prgatester = "%systemdrive%\Program Files\Autodesk\Inventor 2009\bin\InventorView.exe"
IF EXIST ($prgatester)
? "Le programme est déjà installé"
GOTO "finerreur"
ELSE
? "Le programme n'est pas déjà installé : lancement de l'installation."
ENDIF

;creation du dossier de destination
IF NOT EXIST ($dossierprov)
MD $dossierprov
? "Le dossier : " + $dossierprov + " a été créé."
ELSE
? "Le dossier : " + $dossierprov + " existe déjà."
ENDIF

;décompression d'un fichier en fonction de l'architecture du system d'exploitation
IF @ONWOW64 = 1
$fichieradecomp = 'autodesk_inventor_view_r2009_x64_fra.zip '
ELSE
$fichieradecomp = 'autodesk_inventor_view_r2009_x86_fra.zip '
ENDIF
$destinationdeladecomp = $dossierprov
$commande='"'+$SEI_7Z+'\7z.exe" x -o' + $destinationdeladecomp + ' ' + $fichieradecomp
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF

;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

;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

;Verifi si un dossier existe
IF NOT EXIST ($ALLUSERPRG + "\Autodesk\")
? "Le dossier " + $ALLUSERPRG + "\Autodesk\ existe déjà"
$drapeauautodesk = 1
ENDIF

;installation du programme
$commande=$dossierprov + 'setup.exe /t /q /c INVENTORVIEW'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Numéro de retour : " + @ERROR
ENDIF

;attendre la fin du programme setup.exe
sleep 5
$occurrence = 0
$pidnumber = EnumProcess("setup.exe")
WHILE $pidnumber <> ""
$pidnumber = EnumProcess("setup.exe")
? "Occurrence : [" + $occurrence + "] Pid setup.exe : [" + $pidnumber + "]"
$occurrence = $occurrence + 1
sleep 5
LOOP

;Si le dossier "menu démarrer\viewers" n'existe : le créer
IF NOT EXIST ($ALLUSERPRG + "\Viewers\Autodesk")
? "création du dossier " + $ALLUSERPRG + "\Viewers\Autodesk"
MD $ALLUSERPRG + "\Viewers\Autodesk"
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
ELSE
? "Le dossier " + $ALLUSERPRG + "\Viewers\Autodesk existe déjà"
ENDIF

;Déplacement du raccourci dans dossier "menu démarrer\viewers"
MOVE $ALLUSERPRG + '\Autodesk\Autodesk Inventor 2009\' $ALLUSERPRG + "\Viewers\Autodesk\Autodesk Inventor 2009\"
IF $drapeauautodesk
DELPROGRAMGROUP ("Autodesk", 1)
ENDIF

;efface le raccourci du bureau
del $ALLUSERBUREAU + "\Autodesk Inventor View.lnk" /c /f /s

;effacement d'un dossier
$dossierasupprimer = $dossierprov
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("")


 

Contenu du fichier EnumProcess.udf

FUNCTION EnumProcess($exe, optional $terminate, optional $Computer)
Dim $winmgmts, $ExecQuery, $Process, $id, $getobject, $
if not $computer $computer=@wksta endif
$winmgmts="winmgmts:{impersonationLevel=impersonate}!//$COMPUTER"
select
case val($exe)>0
$ExecQuery="select * from Win32_Process where ProcessId='$exe'"
$GetObject=GetObject($winmgmts).ExecQuery($ExecQuery)
For each $Process in $GetObject
if $terminate $=$Process.Terminate endif
$EnumProcess = $Process.name
next
$GetObject=''
case vartype($exe)=8
$ExecQuery="select * from Win32_Process where Name='$exe'"
$GetObject=GetObject($winmgmts).ExecQuery($ExecQuery)
For each $Process in $GetObject
if $terminate $=$Process.Terminate endif
$id=$Process.ProcessId
$EnumProcess = "$Id" + "|" + "$EnumProcess"
Next
$EnumProcess=left($EnumProcess,len($EnumProcess)-1)
$GetObject=''
case 1
exit 1
endselect
ENDFUNCTION

 

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