[R] Installation de Logiciels

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
T123x3
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 30 mai 2014 16:27
Status : Hors ligne

[R] Installation de Logiciels

#1

Message par T123x3 »

Bonjour a tous!!!

Je suis en stage dans un service informatique et on m'a demandé de developper un système (on va dire ça comme ça :D ) où on peut installer des logiciels silencieusement et rapidement. Cela fait que quelque jour que je connais AutoIt, donc je connaissais pas du tout et apparement cela peut resoudre mes problème.

En regardant par-çi parl-là, j'ai pensé de faire un interface où qu'il y a:
-plusieurs checkbox (qui indique les noms de logiciel)
-un bouton "installer
-Quand je coche les cases des logiciels n°1, n°5, N°3 et que je clic sur le bouton « Installer », cela doit lancer les scripts des logiciels correspondants

J'ai essayée d'écrire un bout de code (avec aucune compétence à ce language) mais le probléme est que quand je coche plusieurs logiciels, ils s'installent en même temps, j'aimerai qu'ils s'installent un par un (chacun son tour) mais je ne sais pas comment faire :(

Merci d'avance pour votre aide!!!
Modifié en dernier par T123x3 le ven. 06 juin 2014 10:12, modifié 2 fois.
Don't be a salad!!! Be the best goddamn broccoli you could ever be!!!
Avatar du membre
silvere
Niveau 8
Niveau 8
Messages : 532
Enregistré le : sam. 24 sept. 2011 22:56
Status : Hors ligne

Re: [..] Installation de Logiciels

#2

Message par silvere »

Regarde dans l'aide du coté des fonction Control : ControlClick...
Pour une installation silencieusement il faut que la fenêtre soit invisible donc la regarde la fonction WinSetState
Ce n'est que des pistes car je n'ai jamais fait ce genre de programmes.
Pour l'installation successive, donne nous ton code pour voir ce qui ne vas pas.
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

Re: [..] Installation de Logiciels

#3

Message par Bayo »

J'ai fait un programme un peu comme ça, qui passe différent nettoyeur et antivirus pour dévéroler des PCs.

en gros dans le case de ton bouton tu fait des "si la case est coché faire tel fonction" (une fonction par logiciel) et dans les fonctions faut jouer sur les attentes de fenêtre (winwait) les ControlClick et surtout pendant les périodes d'installation des

Code : Tout sélectionner

While WinExists("fenetre")
    Sleep(2000) 
WEnd
 
ou alors par exemple pour attendre le bouton terminer en fin d'installation par exemple tu peux faire

Code : Tout sélectionner

While Not ControlGetHandle("", "", "Terminer")
        Sleep(100)
    WEnd
ControlClick("", "", 'Terminer')
Voila j'espere que ça va t'aider.
Avatar du membre
silvere
Niveau 8
Niveau 8
Messages : 532
Enregistré le : sam. 24 sept. 2011 22:56
Status : Hors ligne

Re: [..] Installation de Logiciels

#4

Message par silvere »

J'aurais du mal a t'aider si tu me donne pas ton code :?
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Installation de Logiciels

#5

Message par jguinch »

Tu peux peut-être t'inspirer d'un truc existant ?
http://www.autoitscript.com/forum/topic ... installer/ (j'ai pas testé, mais au vu du screenshot, ça pourrait correspondre à ton besoin)

Edit : Message déplacé dans Aide générale
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
T123x3
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 30 mai 2014 16:27
Status : Hors ligne

Re: [..] Installation de Logiciels

#6

Message par T123x3 »

Merci de m'avoir répondre!!! C'est sympa :D

Sinon, j'ai réecris du bout de code que j'ai trouvé par-çi par-là donc je suis pas sûr que c'est correct!!!!
je vous donne mon code!!!

[spoiler

Code : Tout sélectionner

=]#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1)

;Declaration de l'array principale!!!
Dim $a_installer[5][2]=[["", ""], ["0", "isetup.exe"], ["0", "launch4j.exe"], ["0", "Grep_setup.exe"], ["0", "java.exe"]]

; l'interface graphique
$gui = GUICreate(" Installateur ", 751, 666, 300, 37)
GUISetState (@SW_SHOW)
GUISetIcon("Data\autorun.ico")
GUISetOnEvent($GUI_EVENT_CLOSE, "quitter")

;Placement et nom des boutons "Installer", "Quitter"
$installer = GUICtrlCreateButton(" Installer ", 664, 632, 75, 25, 0)
GUICtrlSetOnEvent( -1,"install")
$quitter = GUICtrlCreateButton(" Quitter ", 576, 632, 75, 25, 0)
GUICtrlSetOnEvent( -1,"quitter")

;Placement et nom de la checkbox (cases à cocher) pour tout selectionner
$checkall = GUICtrlCreateCheckbox("Tout cocher / Tout décoher", 104, 584, 177, 17)
GUICtrlSetOnEvent( -1,"allcheck")

;Placement et nom des CheckBox (cases à cocher) pour chaque logiciels
$Group1 = GUICtrlCreateGroup("Programmation", 10, 10, 150, 220 )
$check1 = GUICtrlCreateCheckbox("Inno Setup", 20, 25, 120, 20)
GUICtrlSetOnEvent( -1,"checkbox")
$check2 = GUICtrlCreateCheckbox("Launch4j", 20, 45, 120, 20)
GUICtrlSetOnEvent( -1,"checkbox")
$check3 = GUICtrlCreateCheckbox("Grep", 20, 65, 120, 20 )
GUICtrlSetOnEvent( -1,"checkbox")
$check4 = GUICtrlCreateCheckbox("Java", 20, 85, 120, 20 )
GUICtrlSetOnEvent( -1,"checkbox")
GUICtrlCreateGroup("", -99, -99, 1, 1)
GuiSetState ( )

While 1;Boucle infinie
    Sleep(100)
WEnd


;La fonction "checkbox"
Func checkbox()
      Switch @GUI_CtrlId
         Case $check1
            If _Ischecked($check1) then
               $a_installer[1][0] = "1"
            Else
               $a_installer[1][0] = "0"
            EndIf
         Case $check2
            If _Ischecked($check2) then
               $a_installer[2][0] = "1"
            Else
               $a_installer[2][0] = "0"
            EndIf
         Case $check3
            If _Ischecked($check3) then
               $a_installer[3][0] = "1"
            Else
               $a_installer[3][0] = "0"
            EndIf
         Case $check4
            If _Ischecked($check4) then
               $a_installer[4][0] = "1"
            Else
               $a_installer[4][0] = "0"
            EndIf

      EndSwitch
 EndFunc


 ;La fonction "allcheck"
 Func allcheck()
    If _Ischecked($checkall) Then
        Local $i
        GUICtrlSetState($check1,$GUI_CHECKED)
        GUICtrlSetState($check2,$GUI_CHECKED)
        GUICtrlSetState($check3,$GUI_CHECKED)
        GUICtrlSetState($check4,$GUI_CHECKED)

         For $i = 1 to Ubound($a_installer) - 1
            $a_installer[$i][0] = "1"
         Next
      Else
        Local $i
        GUICtrlSetState($check1,$GUI_UNCHECKED)
        GUICtrlSetState($check2,$GUI_UNCHECKED)
        GUICtrlSetState($check3,$GUI_UNCHECKED)
        GUICtrlSetState($check4,$GUI_UNCHECKED)

        For $i = 1 to Ubound($a_installer) - 1
            $a_installer[$i][0] = "0"
        Next

    EndIf
 EndFunc


;La fonction "install"
Func install()
    Local $i
    For $i = 1 to Ubound($a_installer)-1
        If $a_installer[$i][0] = "1" then
            Run( @ScriptDir &"\installation\"&$a_installer[$i][1])
            Sleep(1000)
        
       EndIf

    Next
 EndFunc


 Func quitter()
   Exit
EndFunc

Func _Ischecked($control)
    Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED
EndFunc ;==>_IsChecked
Func _Ischecked2($control)
    Return BitAND(GUICtrlRead($control), $GUI_INDETERMINATE) = $GUI_INDETERMINATE
EndFunc ;==>_IsChecked

While 1
$msg = GUIGetMsg()
Select
Case $MSG = $GUI_EVENT_CLOSE
Exit
Case $MSG = $button_1

EndSelect
Wend
[/spoiler]


Merci d'avance!!!
Modifié en dernier par jguinch le ven. 06 juin 2014 10:07, modifié 1 fois.
Raison : Ajout de la balise code
Don't be a salad!!! Be the best goddamn broccoli you could ever be!!!
T123x3
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 30 mai 2014 16:27
Status : Hors ligne

Re: [..] Installation de Logiciels

#7

Message par T123x3 »

T123x3 a écrit :Bonjour a tous!!!

Je suis en stage dans un service informatique et on m'a demandé de developper un système (on va dire ça comme ça :D ) où on peut installer des logiciels silencieusement et rapidement. Cela fait que quelque jour que je connais AutoIt, donc je connaissais pas du tout et apparement cela peut resoudre mes problème.

En regardant par-çi parl-là, j'ai pensé de faire un interface où qu'il y a:
-plusieurs checkbox (qui indique les noms de logiciel)
-un bouton "installer
-Quand je coche les cases des logiciels n°1, n°5, N°3 et que je clic sur le bouton « Installer », cela doit lancer les scripts des logiciels correspondants

J'ai essayée d'écrire un bout de code (avec aucune compétence à ce language) mais le probléme est que quand je coche plusieurs logiciels, ils s'installent en même temps, j'aimerai qu'ils s'installent un par un (chacun son tour) mais je ne sais pas comment faire :(

Merci d'avance pour votre aide!!!
Don't be a salad!!! Be the best goddamn broccoli you could ever be!!!
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2128
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Installation de Logiciels

#8

Message par TommyDDR »

un par un -> Remplacez Run par RunWait
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
T123x3
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 30 mai 2014 16:27
Status : Hors ligne

Re: [..] Installation de Logiciels

#9

Message par T123x3 »

Ca marche!!! merci!! :D
Don't be a salad!!! Be the best goddamn broccoli you could ever be!!!
T123x3
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 30 mai 2014 16:27
Status : Hors ligne

Re: [R] Installation de Logiciels

#10

Message par T123x3 »

Salut!!!

Mon programme marche à merveille, c'est super mais j'ai toujours pas réglée a propos des installations silencieuses.
Parce que comme j'ai 40 logiciels, je vais pas tout taper à la main avec les ControlClick ou il y a un autre moyen plus rapide?? :?

Merci d'avance!!
Don't be a salad!!! Be the best goddamn broccoli you could ever be!!!
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [R] Installation de Logiciels

#11

Message par jguinch »

Comme il a été dit et redit, il faut privilégier une installation silencieuse, plutôt qu'une automatisation par clics.
Pour ce faire, il faut s'appuyer sur les options d'installations prévues par les programmes d'installation, qui sont en général décrits sur le site de l'éditeur.
En général, c'est assez simple : il suffit de taper dans un moteur de recherche firefox silent install ou firefox install command line et on tombe sur la réponse.
Sinon, il y des sites spécialisés comme par exemple ITNinja/AppDeploy. J'aime bien aussi WPKG.

Du coup, il te suffira par exemple de lancer Firefox Setup 24.5.0esr.exe -ms pour installer Firefox sans aucune interaction, ou vlc-2.1.3-win32.exe /S pour VLC... chaque installeur ayant ses propres options d'installation.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
T123x3
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 30 mai 2014 16:27
Status : Hors ligne

Re: [R] Installation de Logiciels

#12

Message par T123x3 »

Tout ça, c'est pas du script. l'installation silencieuse est utilisé grace a un shell.
E si c'est du shell, comment on le relie avec mon programme?

excuse-moi de te déranger jguinch, mais j'ai du mal à comprendre.
Don't be a salad!!! Be the best goddamn broccoli you could ever be!!!
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [R] Installation de Logiciels

#13

Message par jguinch »

Par exemple, pour lancer l'installation de Firefox :
RunWait( "Firefox Setup 24.5.0esr.exe -ms")
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
T123x3
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 30 mai 2014 16:27
Status : Hors ligne

Re: [R] Installation de Logiciels

#14

Message par T123x3 »

Ca ne marche pas!!! :(

Mais, si je comprend bien, j'arrive à le lancer l'installation mais j'aimerai que l'utilisateur ne s'occupe pas des assistances pour l'installation du logiciel!
Don't be a salad!!! Be the best goddamn broccoli you could ever be!!!
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [R] Installation de Logiciels

#15

Message par jguinch »

Si ça ne marche pas, merci de nous donner des infos : message d'erreur ? comportement ? Montre nous ton code et vérifie que l'exécutable que tu lances est bien présent.
Et arrête de mettre des points d'exclamation, on va se sentir agressés !
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
T123x3
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 30 mai 2014 16:27
Status : Hors ligne

Re: [R] Installation de Logiciels

#16

Message par T123x3 »

Excuse moi à propos des point d'exclamation, c'est un sorte de tic, j'aime bien en mettre. Ne vous sentez pas agressez, j'ai pris une mauvaise habitude.

voici mon code:
► Afficher le texte



Je remercie encore à TommyDDR pour m'avoir aidée pour ce code :D
Don't be a salad!!! Be the best goddamn broccoli you could ever be!!!
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2128
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Installation de Logiciels

#17

Message par TommyDDR »

Code : Tout sélectionner

RunWait( @ScriptDir &"\installation\" & $a_installer[$i][$j][$C_NOMEXE] & "-ms")
cela correspond à C:\xxxxxx\installation\firefox.exe-ms car vous n'avez pas mis d'espace !!!!!!!! :wink:
par contre il va falloir voir ce qu'est une boucle, là vous mettez en dur "-ms" cela veut dire que -ms va être envoyé en paramètre à CHACUNE des installation, or seule firefox comprendra " -ms", chaque installation est codée différemment, il faut donc préciser un à un les paramètres pour une installation silencieuse (et encore, certaines installations n'ont pas de mode silencieux).
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
T123x3
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 30 mai 2014 16:27
Status : Hors ligne

Re: [R] Installation de Logiciels

#18

Message par T123x3 »

Salut!

Désolé de pas vous avoir répondu, ce week-end, j'étais dans un endroit où internet n'existe pas (mais bon ça, c'est pas important :D)

Avec vos commentaires, je commence a comprend (par rapport au paramètre d'installation).

J'ai mis mon RunWait hors des boucles For, et j'ai vérifié les espaces :D
Mon programme se lance mais quand je coche Firefox et que je cliuer sur le bouton "installer", il ne se passe rien.

C'est normal???
Don't be a salad!!! Be the best goddamn broccoli you could ever be!!!
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [R] Installation de Logiciels

#19

Message par ZDS »

Bonjour,

Pense à redonner ton code dans sa version la plus récente (en éditant ton premier message, pour éviter d'alourdir le topic et de pas savoir où trouver les infos pour les gens comme moi qui veulent donner un coup de main ^^).

A bientôt !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
T123x3
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 30 mai 2014 16:27
Status : Hors ligne

Re: [R] Installation de Logiciels

#20

Message par T123x3 »

Salut


Voici mon code.

Et je crois m'apercevoir qu'il y a des erreurs, mais je ne sais pas comment les régler
J'espère que vous pourrez m'aidez, merci
► Afficher le texte
Don't be a salad!!! Be the best goddamn broccoli you could ever be!!!
Répondre