[R] Installation automatique de logiciel

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
molbento
Niveau 2
Niveau 2
Messages : 17
Enregistré le : ven. 11 juil. 2008 11:43
Status : Hors ligne

[R] Installation automatique de logiciel

#1

Message par molbento »

Bonjour,
Je suis en train de créer un script sous Autoit V3 qui permet d'installer automatiquement les logiciels (ex : openoffice) sur des machines.

J'utilise le soft Autoit Windows info qui me permet de récupérer les nom de tous les boutons,checkbox quui compose la fenêtre.

En utilisant le logiciel sur une fenêtre de l'installation de openoffice je remarque que les cases a cocher ne sont pas des checkbox mais plutôt des boutons. J'aimerais savoir comment faire pour savoir si le bouton "j'accepte" est cocher ou non comment faire?
Si il n'est pas cocher j'aimerais le faire mais comme ce n'est pas une checkbox je ne sais pas comment faire pour cocher un bouton si quelqu'un peut m'aider merci d'avance.
Fichiers joints
autoit openoffice.JPG
Modifié en dernier par molbento le jeu. 31 juil. 2008 11:10, modifié 1 fois.

molbento
Niveau 2
Niveau 2
Messages : 17
Enregistré le : ven. 11 juil. 2008 11:43
Status : Hors ligne

Re: [..] Installation automatique de logiciel

#2

Message par molbento »

Peut être que je ne me suis pas bien exprimer donc je vais essayer d'etre plus clair

Lors de l'installation d'open Office le logiciel "Autoit Windows Info" permet de collecter des informations sur les interfaces graphique (par exemple on peut connaitre le nom d'un bouton).

Mon problème est j'aimerais tester si "j'accepte les termes de ce contrat de licence" est bien cocher ou non. Or d'après autoit windows info la case a cocher "j'accepte ..." est en faite un boutton.


J'ai tester les commandes :

Code : Tout sélectionner

_GUICtrlButton_GetCheck($hWnd)
GUICtrlGetState ( [controlID] )
Mais cela ne fonctionne pas !!!!!!!!!!!!!!
Help me please

SurPriseS
Niveau 6
Niveau 6
Messages : 277
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] Installation automatique de logiciel

#3

Message par SurPriseS »

Salut,
De toute façon sa sert quasiment a rien de testé cette partie. En effet, le logiciel seras TOUJOURS sur "j'accepte pas" donc même si sa peut être intéressant pour la suite, ici sa sert a rien...
Sinon j'ai déjà fait un script permettant l'installation automatiser de quelques logiciels :

http://www.autoitscript.fr/forum/viewtopic.php?f=6&t=81

Et mon wiki :

http://www.k1der.net/~surprise/wikipti/ ... ?id=autoit

Les scripts sont pas forcément nikel et a jour, mais ils fonctionnent :p Sa te ferras de toutes façon un bon début :)

ani
Modérateur
Modérateur
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Installation automatique de logiciel

#4

Message par ani »

Oui des boutons radio alors :)

Regardez du coté de la fonction = controlcommand(titre,texte,controlid,command,option)

avec l'option ou la command check il me semble :)
Doit exister sur le forum des exemple pour l'auto-install, il existe aussi des parametre de l'autoinstalleur qu'on nomme silencieux.
A vous de voir le plus pratique.

Bonne continuation

lutin44
Niveau 2
Niveau 2
Messages : 19
Enregistré le : jeu. 13 déc. 2007 14:38
Localisation : Nantes
Status : Hors ligne

Re: [R] Installation automatique de logiciel

#5

Message par lutin44 »

Salut a toi molbento,
desole si je te repond un peu tard, pour ton problème j'ai peut-etre une solution, qui est de ne pas cherche à cliquer sur tel ou tel bouton ou checkbox ou autre mais simplement d' "envoyer" via ton script des combinaison, du style fleche du haut , fleche du bas ,espace, etc,etc...
voici le script que j'ai pondu pour mon installe d'open office :

Code : Tout sélectionner

Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",1)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)
Opt("SendKeyDelay", 100)
;on determine le lecteur cd/dvd
$var = DriveGetDrive( "CDROM" )

run($var[1]&"\instfolder\Open office\OOo_2[1].4.1_Win32Intel_install_fr.exe")
WinWait("Préparation de l'installation de OpenOffice.org 2.4","Nous vous remercions d'avoir téléchargé OpenOffice.org 2.4.")
If Not WinActive("Préparation de l'installation de OpenOffice.org 2.4","Nous vous remercions d'avoir téléchargé OpenOffice.org 2.4. ") Then WinActivate("Préparation de l'installation de OpenOffice.org 2.4","Nous vous remercions d'avoir téléchargé OpenOffice.org 2.4.")
WinWaitActive("Préparation de l'installation de OpenOffice.org 2.4","Nous vous remercions d'avoir téléchargé OpenOffice.org 2.4.")
Send("{ENTER}")
WinWait("Préparation de l'installation de OpenOffice.org 2.4 ","Sélectionnez un dossier")
If Not WinActive("Préparation de l'installation de OpenOffice.org 2.4 ","Sélectionnez un dossier") Then WinActivate("Préparation de l'installation de OpenOffice.org 2.4 ","Sélectionnez un dossier")
WinWaitActive("Préparation de l'installation de OpenOffice.org 2.4 ","Sélectionnez un dossier")
Send("{ENTER}")
WinWait("OpenOffice.org 2.4 - Installation Wizard","Bienvenue dans l'assistant d'installation de OpenOffice.org 2.4")
If Not WinActive("OpenOffice.org 2.4 - Installation Wizard","Bienvenue dans l'assistant d'installation de OpenOffice.org 2.4") Then WinActivate("OpenOffice.org 2.4 - Installation Wizard","Bienvenue dans l'assistant d'installation de OpenOffice.org 2.4")
WinWaitActive("OpenOffice.org 2.4 - Installation Wizard","Bienvenue dans l'assistant d'installation de OpenOffice.org 2.4")
Send("{ENTER}")
WinWait("OpenOffice.org 2.4 - Installation Wizard","Contrat de licence")
If Not WinActive("OpenOffice.org 2.4 - Installation Wizard","J'accepte les termes de ce contrat de licence") Then WinActivate("OpenOffice.org 2.4 - Installation Wizard","J'accepte les termes de ce contrat de licence")
WinWaitActive("OpenOffice.org 2.4 - Installation Wizard","J'accepte les termes de ce contrat de licence")
Send("{UP}")
Send("{ENTER}")
WinWait("OpenOffice.org 2.4 - Installation Wizard","Informations client")
If Not WinActive("OpenOffice.org 2.4 - Installation Wizard","Informations client") Then WinActivate("OpenOffice.org 2.4 - Installation Wizard","Informations client")
WinWaitActive("OpenOffice.org 2.4 - Installation Wizard","Informations client")
Send("{ENTER}")
WinWait("OpenOffice.org 2.4 - Installation Wizard","Type d'installation")
If Not WinActive("OpenOffice.org 2.4 - Installation Wizard","Informations client") Then WinActivate("OpenOffice.org 2.4 - Installation Wizard","Type d'installation")
WinWaitActive("OpenOffice.org 2.4 - Installation Wizard","Type d'installation")
Send("{ENTER}")
WinWait("OpenOffice.org 2.4 - Installation Wizard","Type de fichier")
If Not WinActive("OpenOffice.org 2.4 - Installation Wizard","Type de fichier") Then WinActivate("OpenOffice.org 2.4 - Installation Wizard","Type de fichier")
WinWaitActive("OpenOffice.org 2.4 - Installation Wizard","Type de fichier")
Send("{SPACE}")
Send("{ENTER}")
WinWait("OpenOffice.org 2.4 - Installation Wizard","Prêt pour l'installation du programme")
If Not WinActive("OpenOffice.org 2.4 - Installation Wizard","Prêt pour l'installation du programme") Then WinActivate("OpenOffice.org 2.4 - Installation Wizard","Prêt pour l'installation du programme")
WinWaitActive("OpenOffice.org 2.4 - Installation Wizard","Prêt pour l'installation du programme")
Send("{ENTER}")
WinWait("OpenOffice.org 2.4 - Installation Wizard","Installhield Wizard de OpenOffice.org 2.4 terminé")
If Not WinActive("OpenOffice.org 2.4 - Installation Wizard","Installhield Wizard de OpenOffice.org 2.4 terminé") Then WinActivate("OpenOffice.org 2.4 - Installation Wizard","Installhield Wizard de OpenOffice.org 2.4 terminé")
WinWaitActive("OpenOffice.org 2.4 - Installation Wizard","Installhield Wizard de OpenOffice.org 2.4 terminé")
Send("{ENTER}")
DirRemove("C:\Documents and Settings\"&@UserName&"\Bureau\OpenOffice.org 2.4 (fr) Installation Files",1)
En sachant que pour moi les fichiers d'install son sur le cd (pour une install automatisée avec windows) et que je supprime les fichier temporaires,et aussi qu'il s'agit de la version 2.4 d'Open Office

Chez moi ça marche du tonnerre sur n'importe quel pc :D

Espérant avoir pu t'aider :wink:

Chrisna
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 21 oct. 2013 10:29
Status : Hors ligne

Re: [R] Installation automatique de logiciel

#6

Message par Chrisna »

Je tombe sur la discussion des années plus tard, mais vu que le problème a éte contourné et que j'ai eu a le résoudre je poste la solution. il suffit de recupérer le handle du control avec WinGetHandle et d'appeler la variable où on a stocker tout ca avec _GUICtrlButton_GetCheck($variableDeTon Handle).
Comme un exemple vaut toujours mieux que trop de blabla, alors en voici un:
Bien entendu les controlID sont recupérés avec Windows info tool

Code : Tout sélectionner

 
$Handleboutton2 = ControlGetHandle("[CLASS:#2000]","","[CLASS:Button; INSTANCE:2]")
                
$Handleboutton3 = ControlGetHandle("[CLASS:#2000]","","[CLASS:Button; INSTANCE:3]")
                
                 $Statusboutton2 = _GUICtrlButton_GetCheck($Handleboutton2)
                
                 $Statusboutton3 = _GUICtrlButton_GetCheck($Handleboutton3)
                
                 ConsoleWrite("Handle boutton 2 " & $Handleboutton2 & " and Handle boutton3 " & $Handleboutton3         
                
                 ConsoleWrite("Ici je lis les status: " & $Statusboutton2 & " and " & $Statusboutton3 & @CRLF)
                
                 If $Statusboutton3 = 0 Then ; 0 ici n'est pas une erreur car il s'agit ici de boutton et non de checkbox 0 veut dire pas coché
                
                    ControlClick("[CLASS:#2000]","","[CLASS:Button; INSTANCE:3]")
                    
                 Else ;Vous obtenez 1 comme valeur veut dire boutton coché
                
                    ConsoleWrite("Info:Le boutton 3 est déjà coché. Status = " & $Statusboutton3 & @CRLF)
                    
                 EndIf
                
                 If $Statusboutton2 = 0 Then
                
                    ControlClick("[CLASS:#2000]","","[CLASS:Button; INSTANCE:2]")
                    
                 Else
                
                    ConsoleWrite("Info: Le boutton 2 est déjà coché. Status = " & $Statusboutton2 & @CRLF)
                    
                 EndIf
               

Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 341
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [R] Installation automatique de logiciel

#7

Message par GhostLine »

As tu envisagé d'utiliser une installation silencieuse ?

Répondre