[R] Problème Install Auto ControlClick

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
smirold
Niveau 2
Niveau 2
Messages : 16
Enregistré le : ven. 21 oct. 2011 08:54
Localisation : 94420 Le Plessis Trevise
Status : Hors ligne

[R] Problème Install Auto ControlClick

#1

Message par smirold »

Bonjour,

Je voudrai lancer une script qui clique automatiquement sur des boutons, basique vous allez me dire !! :lol:

Mais voici mon problème :

Je lance le prog, j’attends la fenêtre, je focus le bouton, je clique sur le bouton !
Sauf que, lorsque la fenêtre apparait, les boutons sont grisés donc inactif durant moins d'une seconde,et donc focus et clique impossible !
Est ce qu'il existe un équivalant winwait genre controlwait.

La seul solution que j'ai trouvé c'est d mettre un sleep (1000) après winwait, mais je trouve pas ça très propre, surtout si c'est une vieille machine le délais risque d'être rallongé!

Code : Tout sélectionner

ShellExecute ("m:\assetmanager\AssetManager.msi" , "transforms=""assetmanager.mst""")
WinWait ("HP Asset Manager 5.22 (fr)")
ControlFocus ("HP Asset Manager 5.22 (fr)" , "" , "[CLASS:Button; INSTANCE:1; ID:25966]")
ControlClick ("HP Asset Manager 5.22 (fr)" , "" , "[CLASS:Button; INSTANCE:1; ID:25966]")
Sinon, je sais qu'il est possible d'installer silencieusement avec /qn, mais si ce problème se repose avec un .exe quel serait votre solution ?
Modifié en dernier par smirold le lun. 24 oct. 2011 09:08, modifié 1 fois.
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: [..] Problème Install Auto ControlClick

#2

Message par ZDS »

Bonjour,

Voici une petite fonction maison qui attend qu'un état soit disponible sur un bouton, réglé avec un timeout au cas où l'état n'arrive jamais :

Code : Tout sélectionner

Func controlWaitState($gui, $gui_texte, $control, $state, $option="", $timeout=5000)
    Local $timer = TimerInit()
    Do
        Local $valeur = ControlCommand($gui,$gui_texte,$control,$state,$option)
        Local $found = ($valeur = 1)
    Until $found Or TimerDiff($timer) > $timeout
    Return $found
EndFunc

Local $ok = controlWaitState("HP Asset Manager 5.22 (fr)" , "" , "[CLASS:Button; INSTANCE:1; ID:25966]", "IsEnabled")
If $ok Then
    MsgBox(0,"","Bouton actif")
Else
    MsgBox(0,"","Timeout atteint")
EndIf
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 !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Problème Install Auto ControlClick

#3

Message par mikell »

Bien sympa et souple ce petit bout de script, j'empoche :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
smirold
Niveau 2
Niveau 2
Messages : 16
Enregistré le : ven. 21 oct. 2011 08:54
Localisation : 94420 Le Plessis Trevise
Status : Hors ligne

Re: [..] Problème Install Auto ControlClick

#4

Message par smirold »

merci pour ta réponse, je vais faire comme ça !
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [R] Problème Install Auto ControlClick

#5

Message par zeshrek »

smirold a écrit :Sinon, je sais qu'il est possible d'installer silencieusement avec /qn, mais si ce problème se repose avec un .exe quel serait votre solution ?
Effectivement, un msi s'installe en silencieux avec /qn (ou toute autre déclinaison de /q cf l'aide de msiexec)

Pour un exe, il y a plusieurs possibilités :
I/ Si c'est un setup fait avec installshield, tu peux créer un ISS en le effectuant la séquence suivante
setup.exe /r /f1C:\setup.iss
Cliquer sur les différents parametres de ton install

Cela te crée un fichier de réponse ISS pour ton setup dans la racine de c:. Tu prends ce fichier et tu le mets avec ton setup.exe pour pas le perdre
Ensuite quand tu veux déployer ton appli sur d'autres machines tu lances la commande
[Chemin]setup.exe /s /f1[chemin]setup.iss

II/ C'est un setup "maison" fait par l'éditeur. A ce moment là il y a 3 possibilités
II.A/ Il est prévu une install silencieuse en lui passant un ou plusieurs parametres. Là, c'est cf la doc
II.B/ Il faut passer par un outil de custom (logiciel adobe, office, certains produits IBM...) et là bin le coté silencieux se gere dans l'outil... ou pas. Là encore, c'est cf la doc
II.C/ Il n'y a rien de prévu pour rendre l'install customisable ou silencieuse. Dans ce cas 2 possibilités
II.C.1/ Ce setup encapsule une installation customisable (souvent un MSI) qu'il suffit d'extraire avec un outil comme universal extractor
II.C.2/ Aucune des solutions précédents n'a fonctionné. Dans ce cas, il ne te reste qu'a faire une capture pour transformer cette installation en MSI

voili voilà
Si vis pacem para bellum
Répondre