Header image
Jean-René DANIS

   Retour à Script d'installation silencieuse                

  

Scripts d'installation silencieuse et de personnalisation
PDFCreator 0.9.8

 

Voici un script qui permet d'installer PDFCreator 0.9.8 sans assistance en Kixtart.
Point supplémentaires :

-Le script désinstalle l'ancienne version de PDFCreator si elle est installée dans le dossier par defaut.
-Le script personnalise les options : paramétrage de PDFCreator en suvegarde automatique dans le dossier c:\pdf.
-Le script modifie la base des registres de "default user" et "current user".

Principe

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

PDFCreator-0_9_8_setup (ce fichier peut être télechargé sur le site de www.pdfsam.org : http://sourceforge.net/projects/pdfcreator/ )
install.bat : décrit ci-dessous
PDFCreator-0_9_8_setup.kix : décrit ci-dessous
personalisationCU.reg : décrit ci-dessous (fichier extrait de la base des registres HKCU)
personalisationDU.reg : décrit ci-dessous (fichier précédent modifié pour être importé dans ntuser.dat de default user )

Pour installer et parametrer PDFCreator 0.9.8 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 PDFCreator 0.9.8
@echo JEAN-RENE DANIS 15/05/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 PDFCreator-0_9_8_setup.kix
)
Prompt





Contenu du fichier PDFCreator-0_9_8_setup.kix (télécharger ce script en pdf couleur ici)

; installation de PDFCreator 0.9.8 à partir du fichier PDFCreator-0_9_8_setup.exe
; éventuellement désinstalle PDFCreator s'il est déjà installé dans le dossier par défault.
; Inscription des options personnalisé du logiciel dans le registre du profil par défaut et du profil courrant.
; JEAN-RENE DANIS 15/05/09 www.jrdanis.com

;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

cd @SCRIPTDIR\

;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 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


;Tentative de désinstallation de l'ancienne version
$dossierInstA = "$PRGDIR\pdfcreator"
? $dossierInstA
$dossierInstB = readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","ProgramW6432Dir") + "\pdfcreator"
? $dossierInstB
IF EXIST ($dossierInstA)
    $dossierInst = $dossierInstA
ELSE
    $dossierInst = $dossierInstB
ENDIF
$prgatester = "$dossierInst\pdfcreator.exe"
IF EXIST ($prgatester)
    ? "Le programme est déjà installé : tentative de déinstallation automatique"
    IF EXIST ("$dossierInst\unins000.exe")
        ; désinstallation du programme PDFCreator
        $commande = '"$dossierInst\unins000.exe" /Silent'
        ? $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
    $UninstallExist = 0
    WHILE $UninstallExist = 0
        sleep 5
        IF NOT EXIST ("$DossierInstallFileZilla\unins000.exe")
            $UninstallExist = 1
        ENDIF
    LOOP
    sleep 5
    IF EXIST ("$ALLUSERPRG\PdfCreator")
        ;effacement d'un dossier du menu démarrer
        rd $ALLUSERPRG\PdfCreator /s
        IF NOT EXIST ("$ALLUSERPRG\PdfCreator")
           ? "Le dossier : $ALLUSERPRG\PdfCreator a été supprimé"
        ELSE
           ? "Le dossier : $ALLUSERPRG\PdfCreator n'a pas été supprimé complétement"
        ENDIF
    ENDIF
    IF EXIST ("$ALLUSERPRG\Utilitaires\PdfCreator")
        rd $ALLUSERPRG\Utilitaires\PdfCreator /s
        IF NOT EXIST ("$ALLUSERPRG\Utilitaires\PdfCreator")
          ? "Le dossier : $ALLUSERPRG\Utilitaires\PdfCreator a été supprimé"
        ELSE
          ? "Le dossier : $ALLUSERPRG\Utilitaires\PdfCreator n'a pas été supprimé complétement"
        ENDIF
     ENDIF
ELSE
   ? "Le programme n'est pas déjà installé dans $PRGDIR : lancement de l'installation."
ENDIF



; Création du fichier inf pour une installation personnalisée
IF EXIST ("%temp%\inst_pers_jrdanis_pdfcreator_0.9.8.inf")
    DEL "%temp%\inst_pers_jrdanis_pdfcreator_0.9.8.inf" /f /h
ENDIF
IF RedirectOutput("%temp%\inst_pers_jrdanis_pdfcreator_0.9.8.inf") = 0
    ? '[Setup]'
    ? 'Lang=french'
    ? 'Dir=C:\Program Files\PDFCreator'
    ? 'Group=Utilitaires\PDFCreator'
    ? 'NoIcons=0'
    ? 'SetupType=custom'
    ? 'Components=program,ghostscript,browseraddon,comsamples,helpfiles,helpfiles\french,languages,languages\english,languages\french'
    ? 'Tasks=winexplorer'
    ? 'Printername=PDFCreator'
    ? 'ServerInstallation=0'
    ? 'Win9xPrinterdriver=0'
    ? 'WinNtPrinterdriver=0'
    ? 'Win2k32bitPrinterdriver=0'
    ;Reprise du fichier log et redirection des messages
    IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
       ? "Fichier inf créé : %temp%\inst_pers_jrdanis_pdfcreator_0.9.8.inf"
    ELSE
       GOTO "finerreur"
    ENDIF
ELSE
    ? "Impossible de créer le fichier %temp%\inst_pers_jrdanis_pdfcreator_0.9.8.inf"
    GOTO "finerreur"
ENDIF

;Installation du programme
$commande = 'PDFCreator-0_9_8_setup.exe /silent /norestart /LOADINF="%temp%\inst_pers_jrdanis_pdfcreator_0.9.8.inf"'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
   ? "Erreur n° " + @ERROR
   GOTO "finerreur"
ENDIF

;creation du dossier de destination des PDF créés
? "creation du dossier de destination des PDF créés"
IF NOT EXIST ("%systemdrive%\PDF")
    md "%systemdrive%\PDF"
    IF @ERROR <> 0
       ? "Erreur n° " + @ERROR
       GOTO "finerreur"
    ENDIF
ENDIF
;changement des sécurités du dossier
? "changement des sécurités du dossier"
IF EXIST ("%systemdrive%\Documents and Settings\Administrator")
    $commande = 'ECHO y|cacls c:\pdf /T /g "everyone":F'
    ? $commande
    shell '%COMSPEC% /c ' + $commande
    IF @ERROR <> 0
       ? "Erreur n° " + @ERROR
       GOTO "finerreur"
    ENDIF
ELSE
    $commande = 'ECHO o|cacls c:\pdf /T /g "tout le monde":F'
    ? $commande
    shell '%COMSPEC% /c ' + $commande
    IF @ERROR <> 0
       ? "Erreur n° " + @ERROR
       GOTO "finerreur"
    ENDIF
ENDIF


;Inscription des paramètres dans la base de registre de l'utilisateur courant et de 'default user'
;tester sous xp 32 seulement
?"Chargement de la ruche default user en fonction du système d'exploitation"

$TableauDeValeur = @PRODUCTTYPE,''
$ResultatRecherche = ASCAN($TableauDeValeur, 'Vista', , , 1)
; Retourne 0 si la chaine "Windows XP" est dans @PRODUCTTYPE
IF $ResultatRecherche = 0
    $DOSSIERDEFAULTUSER = "%systemdrive%\Users\Default"
ELSE
    $DOSSIERDEFAULTUSER = "%systemdrive%\Documents and Settings\Default User"
ENDIF

$commande = 'reg.exe load HKEY_USERS\User "' + $DOSSIERDEFAULTUSER + '\ntuser.dat"'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
   ? "Erreur n° " + @ERROR
   GOTO "finerreur"
ENDIF
?"Modification du profil default user ouvert"
$commande = 'regedit /s personalisationDU.reg'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
   ? "Erreur n° " + @ERROR
   GOTO "finerreur"
ENDIF
?"Déchargement de la ruche default user"
$commande = 'reg.exe unLoad HKEY_USERS\User'
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
   ? "Erreur n° " + @ERROR
   GOTO "finerreur"
ENDIF
?"Modification du profil current user"
$commande = 'regedit /s personalisationCU.reg'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
   ? "Erreur n° " + @ERROR
   GOTO "finerreur"
ENDIF


; Suppression des fichiers temporaires
del "%temp%\inst_pers_jrdanis_pdfcreator_0.9.8.inf"


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 personalisationCU.reg

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\PDFCreator\Program]
"AutosaveDirectory"="C:\\pdf\\"
"LastsaveDirectory"="<MyFiles>\\"
"Language"="french"
"PrinterTemppath"="<Temp>PDFCreator\\"
"LastUpdateCheck"="20090515"
"AdditionalGhostscriptParameters"=""
"AdditionalGhostscriptSearchpath"=""
"AddWindowsFontpath"="1"
"AllowSpecialGSCharsInFilenames"="1"
"AutosaveFilename"="<Title>"
"AutosaveFormat"="0"
"AutosaveStartStandardProgram"="0"
"ClientComputerResolveIPAddress"="0"
"DisableEmail"="0"
"DontUseDocumentSettings"="0"
"FilenameSubstitutions"="Microsoft Word - |\\.docx|\\.doc|\\Microsoft Excel - |\\.xlsx|\\.xls|\\Microsoft PowerPoint - |\\.pptx|\\.ppt|"
"FilenameSubstitutionsOnlyInTitle"="1"
"Logging"="0"
"LogLines"="100"
"NoConfirmMessageSwitchingDefaultprinter"="0"
"NoProcessingAtStartup"="0"
"NoPSCheck"="0"
"OptionsDesign"="0"
"OptionsEnabled"="1"
"OptionsVisible"="1"
"PrintAfterSaving"="0"
"PrintAfterSavingDuplex"="0"
"PrintAfterSavingNoCancel"="0"
"PrintAfterSavingPrinter"=""
"PrintAfterSavingQueryUser"="0"
"PrintAfterSavingTumble"="0"
"PrinterStop"="0"
"ProcessPriority"="1"
"ProgramFont"="MS Sans Serif"
"ProgramFontCharset"="0"
"ProgramFontSize"="8"
"RemoveAllKnownFileExtensions"="1"
"RemoveSpaces"="1"
"RunProgramAfterSaving"="0"
"RunProgramAfterSavingProgramname"=""
"RunProgramAfterSavingProgramParameters"="\"<OutputFilename>\""
"RunProgramAfterSavingWaitUntilReady"="1"
"RunProgramAfterSavingWindowstyle"="1"
"RunProgramBeforeSaving"="0"
"RunProgramBeforeSavingProgramname"=""
"RunProgramBeforeSavingProgramParameters"="\"<TempFilename>\""
"RunProgramBeforeSavingWindowstyle"="1"
"SaveFilename"="<Title>"
"SendEmailAfterAutoSaving"="0"
"SendMailMethod"="0"
"ShowAnimation"="1"
"StartStandardProgram"="1"
"Toolbars"="1"
"UpdateInterval"="2"
"UseAutosave"="1"
"UseAutosaveDirectory"="1"








Contenu du fichier personalisationCU.reg

Windows Registry Editor Version 5.00

[HKEY_USERS\User\Software\PDFCreator\Program]
"AutosaveDirectory"="C:\\pdf\\"
"LastsaveDirectory"="<MyFiles>\\"
"Language"="french"
"PrinterTemppath"="<Temp>PDFCreator\\"
"LastUpdateCheck"="20090515"
"AdditionalGhostscriptParameters"=""
"AdditionalGhostscriptSearchpath"=""
"AddWindowsFontpath"="1"
"AllowSpecialGSCharsInFilenames"="1"
"AutosaveFilename"="<Title>"
"AutosaveFormat"="0"
"AutosaveStartStandardProgram"="0"
"ClientComputerResolveIPAddress"="0"
"DisableEmail"="0"
"DontUseDocumentSettings"="0"
"FilenameSubstitutions"="Microsoft Word - |\\.docx|\\.doc|\\Microsoft Excel - |\\.xlsx|\\.xls|\\Microsoft PowerPoint - |\\.pptx|\\.ppt|"
"FilenameSubstitutionsOnlyInTitle"="1"
"Logging"="0"
"LogLines"="100"
"NoConfirmMessageSwitchingDefaultprinter"="0"
"NoProcessingAtStartup"="0"
"NoPSCheck"="0"
"OptionsDesign"="0"
"OptionsEnabled"="1"
"OptionsVisible"="1"
"PrintAfterSaving"="0"
"PrintAfterSavingDuplex"="0"
"PrintAfterSavingNoCancel"="0"
"PrintAfterSavingPrinter"=""
"PrintAfterSavingQueryUser"="0"
"PrintAfterSavingTumble"="0"
"PrinterStop"="0"
"ProcessPriority"="1"
"ProgramFont"="MS Sans Serif"
"ProgramFontCharset"="0"
"ProgramFontSize"="8"
"RemoveAllKnownFileExtensions"="1"
"RemoveSpaces"="1"
"RunProgramAfterSaving"="0"
"RunProgramAfterSavingProgramname"=""
"RunProgramAfterSavingProgramParameters"="\"<OutputFilename>\""
"RunProgramAfterSavingWaitUntilReady"="1"
"RunProgramAfterSavingWindowstyle"="1"
"RunProgramBeforeSaving"="0"
"RunProgramBeforeSavingProgramname"=""
"RunProgramBeforeSavingProgramParameters"="\"<TempFilename>\""
"RunProgramBeforeSavingWindowstyle"="1"
"SaveFilename"="<Title>"
"SendEmailAfterAutoSaving"="0"
"SendMailMethod"="0"
"ShowAnimation"="1"
"StartStandardProgram"="1"
"Toolbars"="1"
"UpdateInterval"="2"
"UseAutosave"="1"
"UseAutosaveDirectory"="1"










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