Page 1 sur 1

[..] Installation d'Irfanview en silencieux

Posté : ven. 27 févr. 2009 10:28
par vitweety
Bonjour,

Je voudrais faire une installation d'irfanview en silencieux via un exe d'autoIT.
En gros j'ai dans un dossier :
irfanview.exe (logiciel en lui meme)
irfanviewfr.exe (traduction du logiciel)

J'ai fait un script en VB, mais je voudrais le faire en AutoIT, mais j'ai un peu de mal (je débute).
Voici mon script VB :

Code : Tout sélectionner

'Installation irfanview 4.23 et de son package FR
Set objShell = CreateObject("WScript.Shell")

'Installation Ifranview
objShell.Run "irfanview.exe /silent /folder=""C:\Program Files\irfanview""" & "/desktop=0" & "/thumbs=0" & "/group=1" & "/allusers=1" & "/assoc=0" & "/assocallusers" & "/ini=""C:\Program Files\IrfanView"""
WScript.Sleep 5000
'Installation du package FR
objShell.Run "irfanviewfr.exe /S /D=""C:\Program Files\irfanview"""
 
J'ai donc en option :
/silent => Installation silencieuse
/folder => L'endroit ou je veux installer le logiciel
/desktop=0 => Aucun raccourci sur le bureau
/Thumbs=0 => Aucun raccourci pour thumbnails
/group=1 => Creation d'un dossier dans le menu démarrer
/Allusers => tous ces paramètres pour tous les utilisateurs
/assoc=0 => n'associer aucun fichier avec l'ouverture d'irfanview
/assocallusers => Associer les mêmes ouvertures de fichier pour tous les utilisateurs
/ini => Emplacement du fichier de parametrage d'Irfanview

J'ai mis un sleep pour attendre la fin de l'installation

Ensuite l'installation du package francais j'ai comme option :
/S => Pour l'installation silencieuse
/D => Pour l'emplacement de l'installation

En fait je ne sais pas trop ou mettre les divers options!

Pour le moment j'ai fait :

Code : Tout sélectionner

;Installation irfanview 4.23 et de son package FR

;Installation Ifranview
Run ("irfanview.exe /silent ["C:\Program Files\irfanview" , [/desktop=0 ,/thumbs=0 ,/group=1 ,/allusers=1 ,/assoc=0 ,/assocallusers ,/ini=""C:\Program Files\IrfanView"""]])
Sleep (5000)
;Installation du package FR
Run "irfanviewfr.exe /S /D=""C:\Program Files\irfanview"""
 
Mais j'ai des erreurs!!

Merci pour votre aide!

Re: [..] Installation d'Irfanview en silencieux

Posté : ven. 27 févr. 2009 10:55
par Tlem
Je vous conseil plutôt l'utilisation de la commande ShellExecuteWait.

Cela donnerait quelque chose du genre :

Code : Tout sélectionner

ShellExecuteWait ('irfanview.exe', '/desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers /ini="C:\Program Files\IrfanView"')

Re: [..] Installation d'Irfanview en silencieux

Posté : ven. 27 févr. 2009 11:04
par ani
En utilisant l'objet shell

Code : Tout sélectionner

;Installation irfanview 4.23 et de son package FR
Global $objShell = ObjCreate("WScript.Shell")
;Installation Ifranview
$objShell.Run('irfanview.exe /silent /folder="C:\Program Files\irfanview" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers /ini="C:\Program Files\IrfanView"')
Sleep(5000)
;Installation du package FR
$objShell.Run('irfanviewfr.exe /S /D="C:\Program Files\irfanview"')
Sans l'objet

Code : Tout sélectionner

;Installation Ifranview
Run('irfanview.exe /silent /folder="C:\Program Files\irfanview" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers /ini="C:\Program Files\IrfanView"')
Sleep(5000)
;Installation du package FR
Run('irfanviewfr.exe /S /D="C:\Program Files\irfanview"')

Re: [..] Installation d'Irfanview en silencieux

Posté : ven. 27 févr. 2009 11:13
par vitweety
N'ayant pas vu vos réponses avant, j'ai réussi avec le package Français :

Code : Tout sélectionner

;installation du package français
run ("irfanviewfr.exe /S", "C:\Program Files\IrfanView\")
Maintenant reste le logiciel en lui même.

je vais tester vos codes, et je vous tiens au courant.

Re: [..] Installation d'Irfanview en silencieux

Posté : ven. 27 févr. 2009 11:20
par ani
j'ai testé avec irfan4.2 l'install se fait impeccable ;-) (en utilisant l'objet shell, j'ai pas testé la seconde, mais sa doit revenir au même)
après l'installation irfan se lance :)

Re: [..] Installation d'Irfanview en silencieux

Posté : ven. 27 févr. 2009 11:25
par vitweety
ani a écrit :En utilisant l'objet shell

Code : Tout sélectionner

;Installation irfanview 4.23 et de son package FR
Global $objShell = ObjCreate("WScript.Shell")
;Installation Ifranview
$objShell.Run('irfanview.exe /silent /folder="C:\Program Files\irfanview" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers /ini="C:\Program Files\IrfanView"')
Sleep(5000)
;Installation du package FR
$objShell.Run('irfanviewfr.exe /S /D="C:\Program Files\irfanview"')
Sans l'objet

Code : Tout sélectionner

;Installation Ifranview
Run('irfanview.exe /silent /folder="C:\Program Files\irfanview" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers /ini="C:\Program Files\IrfanView"')
Sleep(5000)
;Installation du package FR
Run('irfanviewfr.exe /S /D="C:\Program Files\irfanview"')

Ces deux méthodes fonctionnent!! La 2ème m'est préférable du fait que les logiciels ne posent aucune question.
J'ai aussi testé la méthode de Tlem, je n'ai pas réussi, faut-il commencer le script par :
Global $objShell = ObjCreate("WScript.Shell")?
Ou par autre chose?

Autre question, Telm me dit :
Je vous conseil plutôt l'utilisation de la commande ShellExecuteWait.
Pourquoi? Quel sont les avantages?
Pour ani => Lequel est le mieux entre les deux que vous m'avez proposé?

En tout cas merci beaucoup! je vais enfin pouvoir commencer à faire d'autre script plus facilement!

Re: [..] Installation d'Irfanview en silencieux

Posté : ven. 27 févr. 2009 11:36
par Tlem
Regardez dans la documentation pour voir les avantages de la commande ShellExecuteWait.

Si elle ne fonctionne pas, c'est sans doute parce que le chemin de l'exe ou la ligne des options n'est pas valide.

Re: [..] Installation d'Irfanview en silencieux

Posté : ven. 27 févr. 2009 11:42
par vitweety
Ok merci je vois ca :wink:

Re: [..] Installation d'Irfanview en silencieux

Posté : ven. 27 févr. 2009 11:46
par ani
les formules wait sont la pour attendre la fin du processus ;)
Runwait & shellexecutewait

Sous vb elles sont déjà implanté dans la cmd run çà doit etre le 3eme parametre (si je me souvient)
Ces deux méthodes fonctionnent!! La 2ème m'est préférable du fait que les logiciels ne posent aucune question.
les deux fonctionnes ;)
J'ai aussi testé la méthode de Tlem, je n'ai pas réussi, faut-il commencer le script par :
Global $objShell = ObjCreate("WScript.Shell")?
Ou par autre chose?
Non faut rien ajouter

Comme vous le dit tlem, il faut indiquer le dossier de votre exe
Exemple les fichiers se trouve dans "E:\irfan" si vous executer votre script en dehors de ce dossier dans le cas contraire il ne faut le repertoire ;)
avec runwait

Code : Tout sélectionner

;Installation irfanview 4.23 et de son package FR
Runwait('E:\irfan\irfanview.exe /silent /folder="C:\Program Files\irfanview" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers /ini="C:\Program Files\IrfanView"')
;Sleep(5000)
;Installation du package FR
RunWait('E:\irfan\french422.exe /S /D="C:\Program Files\irfanview"')
avec shellexecutewait

Code : Tout sélectionner

;Installation irfanview 4.23 et de son package FR
ShellExecuteWait("E:\irfan\irfanview.exe",' /silent /folder="C:\Program Files\irfanview" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers /ini="C:\Program Files\IrfanView"')
Sleep(5000)
;Installation du package FR
ShellExecuteWait("E:\irfan\irfanviewfr.exe",' /S /D="C:\Program Files\irfanview"')
L'installation c'est bien, tant qu'on a pas ce logiciel sur le pc (faudra penser à la mise à jour) condition => vérifier si le fichier existe dans program files, vérifier la version si nouvelle version alors uninstall et installation de la nouvelle version)

bonne continuation ;)

Re: [..] Installation d'Irfanview en silencieux

Posté : lun. 02 mars 2009 16:08
par vitweety
Hello,

je repars dans mes scripts. Suite à de nombreuses créations de scripts d'installation de divers logiciels, je dois créer un fichier de log pour savoir si l'installation c'est bien déroulée ou non. Jusqu'à la, rien de bien compliqué (enfin je pense). Là où se pose un soucis, c'est que s'il y a plusieurs actions dans un script et que la 1ere ne fonctionne pas, il faudrait arrêter son exécution.

Par exemple pour Irfanview, si l'installation d'irfanview.exe plante mais que irfanviewfr.exe fonctionne cela posera un soucis.

J'ai donc fait ceci :

Code : Tout sélectionner

;Installation Ifranview 4.23


;Info bulle pour tenir au courant de l'installation.
TrayTip("Installation en cours", "Installation d'Irfanview", 5)

;Installation Ifranview
[b]$retour=[/b]RunWait('irfanview.exe /silent /folder="C:\Program Files\irfanview" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers /ini="C:\Program Files\IrfanView"')

;Installation du package FR
[b]$retour=[/b]RunWait('irfanviewfr.exe /S /D="C:\Program Files\irfanview"')

;Fermeture du processus irfanview
ProcessClose("i_view32.exe")

;Info bulle pour tenir au courant de la fin de l'installation.
TrayTip("Installation terminée", "Installation d'irfanview terminée", 3)
sleep (3000)

[b]exit ($retour)[/b]
Le soucis, c'est qu'en faisant ceci, l'installation ne se stoppera pas, et si la 2eme execution se passe bien, il me dira (enfin d'après ce que je pense) que l'installation s'est bien passé (vu que 1 action sur les 2 s'est bien passée).

Comment pourrais-je après chaque action faire un check pour savoir si cela c'est bien passé ou non.

Merci

Re: [..] Installation d'Irfanview en silencieux

Posté : lun. 02 mars 2009 16:13
par Iste
ben, si le log a pas marché, je pense que ca sert a rien d'instaler le patchfr, du coup je ferais ca :

Code : Tout sélectionner

;Installation Ifranview 4.23


;Info bulle pour tenir au courant de l'installation.
TrayTip("Installation en cours", "Installation d'Irfanview", 5)

;Installation Ifranview
$retour=RunWait('irfanview.exe /silent /folder="C:\Program Files\irfanview" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers /ini="C:\Program Files\IrfanView"')

[color=#FF0000]If $retour = 0 Then exit ($retour)[/color] ; si ca rate, on stop la et on le dit

;Installation du package FR
$retour=RunWait('irfanviewfr.exe /S /D="C:\Program Files\irfanview"')

;Fermeture du processus irfanview
ProcessClose("i_view32.exe")

;Info bulle pour tenir au courant de la fin de l'installation.
TrayTip("Installation terminée", "Installation d'irfanview terminée", 3)
sleep (3000)

exit ($retour)
Car la, ton 1er $retour ne sert a rien vu qu'il est ecrasé juste apres

Edit barbar :
Je te conseil pas ce code car il est moins lisible, mais on peut aussi faire :
► Afficher le texte

Re: [..] Installation d'Irfanview en silencieux

Posté : lun. 02 mars 2009 16:22
par vitweety
Iste a écrit :ben, si le log a pas marché, je pense que ca sert a rien d'instaler le patchfr,
C'est exactement ce que je voulais dire :)
Iste a écrit :

Code : Tout sélectionner

;Installation Ifranview 4.23


;Info bulle pour tenir au courant de l'installation.
TrayTip("Installation en cours", "Installation d'Irfanview", 5)

;Installation Ifranview
$retour=RunWait('irfanview.exe /silent /folder="C:\Program Files\irfanview" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers /ini="C:\Program Files\IrfanView"')

[color=#FF0000]If $retour = 0 Then exit ($retour)[/color] ; si ca rate, on stop la et on le dit

;Installation du package FR
$retour=RunWait('irfanviewfr.exe /S /D="C:\Program Files\irfanview"')

;Fermeture du processus irfanview
ProcessClose("i_view32.exe")

;Info bulle pour tenir au courant de la fin de l'installation.
TrayTip("Installation terminée", "Installation d'irfanview terminée", 3)
sleep (3000)

exit ($retour)
Car la, ton 1er $retour ne sert a rien vu qu'il est ecrasé juste apres
Ok merci je test, mais ça a l'air de ce que je voudrais!! Et oui c'était bien mon problème, mon 1er retour aurait été écrasé, mais je ne savais pas comment faire pour sortir!! (Désolé pour ces questions bateau, mais j'ai commencé la semaine dernière la programmation et en fin de semaine l'AutoIT) :)

Re: [..] Installation d'Irfanview en silencieux

Posté : mar. 03 mars 2009 12:21
par ani
Pourquoi le faite d'installer la langue française, le logiciel démarre ?
les switch (parametre) de irfanviewfr sont pas correct ?

merci :)

Re: [..] Installation d'Irfanview en silencieux

Posté : mar. 03 mars 2009 18:48
par vitweety
Je n'ai pas bien compris la question!!

Le fait est que quand on installe la traduction française, la personne qui l'a développé a, à la fin de l'installation lancé une image qui retrace tout ce qu'il a fait suivant les versions.
Par contre il y a deux exécutable de traduction, moi j'ai pris celui qui changer automatiquement la langue!

Ai-je bien répondu à la question?

Re: [..] Installation d'Irfanview en silencieux

Posté : mar. 03 mars 2009 19:52
par Steph
Salut,

perso je saisit pas bien ! il est multilangue, il y a un executable, 1 fichier d'aide, des fichiers txt et 4 dossiers dont un dossier languages contenant les fichiers de langues...

Image

cdt

ps: sinon s'il ne s'installe pas en multilanguage installe le fichier lang fr via la commande FileInstall afin de l'integrer à ton exe.

Re: [..] Installation d'Irfanview en silencieux

Posté : mar. 03 mars 2009 20:12
par vitweety
:? Je en vois pas pourquoi on se prend la tête la dessus, alors que c'est réglé!! Mais je vais essayer d'éclaircir ça!

Alors, irfanview est multilangue de base (Allemand et Anglais) Ayant des utilisateurs Français, je voulais installer le logiciel et le pack Français qui va bien. mon soucis de base était de transcrire un script VBS en autiIT. On m'a donc renseigné sur comment faire.

Actuellement dans mon script j'ai
1ere phase => Installation en silencieux du logiciel irfanview
2eme phase => Installation en silencieux du pack FR
3eme phase => Fermeture du logiciel qui s'ouvre apres avoir installé le pak FR.

Est ce que c'est plus clair? Ou je n'ai pas compris la question encore une fois?? (Je commence a me poser des questions sur le fait que je comprenne ou non les questions!! :mrgreen: )

Donc pour le moment tout fonctionne, j'ai même rajouté des sortis de code d'erreur.

Si vous voulez demain je peux poster mon script!!

Re: [..] Installation d'Irfanview en silencieux

Posté : mar. 03 mars 2009 21:20
par FernandG
Bonsoir,

Moi aussi je peux jouer avec vous ?!?! ;-) IrfanView n'est pas vraiment multilangue. Par défaut, il se lance en anglais. Et, il installe uniquement une "dll" dans le répertoire "Languages" du dossier d'installation, la "Deutsch". Donc par défaut, il ne gère que deux langages.

Voici un exemple d'installation automatique d'IrfanView et, bien sur, silencieuse.

Pré-requis :
- Le programme d'installation : iview423_setup.exe
- La "French.dll" pour franciser le logiciel à télécharger sur le site officiel en cliquant ici. Puis dézipper la dll à coté du pogramme d'installation.

Code : Tout sélectionner

#NoTrayIcon
$path_install = @ScriptDir
RunWait($path_install & '\iview423_setup.exe /silent /folder="' & @ProgramFilesDir & '\IrfanView" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers /ini="' & @ProgramFilesDir & '\IrfanView"', @ScriptDir, @SW_HIDE)
FileCopy($path_install & "\French.dll", @ProgramFilesDir & "\IrfanView\Languages", 1)
IniWrite(@ProgramFilesDir & "\IrfanView\i_view32.ini", "Language", "DLL", "French")
IniWrite(@ProgramFilesDir & "\IrfanView\i_view32.ini", "Language", "Lang", "French")
Pense à changer la variable $path_install avec le bon répertoire d'installation.

Voilà.

Bonne soirée, bonne nuit.
AutoITement.

Re: [..] Installation d'Irfanview en silencieux

Posté : mer. 04 mars 2009 07:57
par vitweety
Bonjour,

VOila mon script comme prévu dans l'état actuel :

Code : Tout sélectionner

;Installation Ifranview 4.23


;Info bulle pour tenir au courant de l'installation.
TrayTip("Installation en cours", "Installation d'Irfanview", 5)

;Installation Ifranview
$retour=RunWait('irfanview.exe /silent /folder="C:\Program Files\irfanview" /desktop=0 /thumbs=0 /group=1 /allusers=1 /assoc=0 /assocallusers /ini="C:\Program Files\IrfanView"')
If $retour = 1 Then exit ($retour) ; si ca rate, on stop l'installation.
    
    
;Installation du package FR
$retour=RunWait('irfanviewfr.exe /S /D="C:\Program Files\irfanview"')
If $retour = 1 Then exit ($retour) ; si ca rate, on stop l'installation.
    
    
;Fermeture du processus irfanview
ProcessClose("i_view32.exe")

;Info bulle pour tenir au courant de la fin de l'installation.
TrayTip("Installation terminée", "Installation d'irfanview terminée", 3)
sleep (3000)

exit ($retour)

Re: [..] Installation d'Irfanview en silencieux

Posté : mer. 04 mars 2009 11:27
par ani
ok, personne n'arrive à me comprendre ^^'
comme d'hab ^:p
@vitweety a écrit : Je en vois pas pourquoi on se prend la tête la dessus, alors que c'est réglé!! Mais je vais essayer d'éclaircir ça!
Si c'est réglé ;) de la transcription vb<->au3 alors :)
Ma question n'était là que pour notre (utilisateur) information.
L'installation en mode silencieux doit être transparent et doit le rester, pour le pack fr il install mais démarre le logiciel i_view32.exe, y a pas de raison ? Si ? Non :)

J'ai du procéder ± de la même manière que FernandG pour que l'installation soit tout à fait silencieuse !!
Déplacement des fichiers lang (.dll & .lng)
Ou d'une tout autre manière, décompresser le pack en utilisant un utilitaire tier genre 7z (qui fera parfaitement l'affaire).

Petit soucis : Si exemple, on indique la destination (Folder) de cette manière %ProgramFiles%\irfanview (ce qui ne pose pas de problème sous vb) ce parametre est reprit en compte par le desinstalleur, et lors de son utilisation, il trouve plus les liens rien ne se passe ... bug.

La plupart du temp les installateurs utilise le dossier Program Files\dans l'exemple les paramètres Folder & ini peuvent être retiré ? sauf si on voudrait le rendre portable ;)

@FernandG dans la fonction runwait le hide ne sert à rien ;) , vu qu'on passe par des paramètre du type (hidden software)en mode silencieu.

Bonne continuation ;)

Re: [..] Installation d'Irfanview en silencieux

Posté : jeu. 05 mars 2009 09:01
par FernandG
Bonjour,
ani a écrit :@FernandG dans la fonction runwait le hide ne sert à rien ;) , vu qu'on passe par des paramètre du type (hidden software)en mode silencieu.
Je sais, je sais :wink: mais que veux-tu, par précaution, par on sait jamais ... Enfin de compte, c'est machinal, c'est dur de changer certaines habitudes et plus on prend de l'âge, pire c'est. :) C'est comme pour des simples MsgBox, j'écris toujours :

Code : Tout sélectionner

MsgBox(64, "Info", "Mon texte.")
Sans trop me tromper, je pense que chacun de nous avons nos petits "tics" non ? ;)

Aller, bonne journée.
AutoITement.