[R] Installation automatisée d'un logiciel et Focus

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Gnifrus
Niveau 4
Niveau 4
Messages : 81
Enregistré le : mar. 14 juil. 2009 13:48
Localisation : Montauban
Status : Hors ligne

[R] Installation automatisée d'un logiciel et Focus

#1

Message par Gnifrus »

Bonjour,

J'aurais besoin (encore une fois) de vos lumières, car je ne trouve pas de réponse à mon interrogation sur le forum, malgré plusieurs recherches.

Voilà, j'ai automatisé l'installation d'un logiciel au moyen de divers "ControlCommand", WinWaitActive, ControlClick...etc...
En bref, tout fonctionne très bien ... SAUF :
Si l'utilisateur clique sur une autre fenêtre que la fenêtre d'installation qui est en train de se dérouler (pas le programme autoit, mais les différentes fenêtres imposées par le concepteur du programme à installer), alors le script autoit perd le focus, et l'installation s'arrête.

Par la suite, si on redonne le focus à la fenêtre d'install, il peut très bien reprendre où il s'était arrété, ou bien rester bloqué.

N'y aurait-il pas une manip afin de bloquer le Focus sur les différentes fenêtres qui s'enchaînent, sans possibilité de cliquer ailleurs sur le bureau le temps de l'installation ?

Merci d'avance pour votre aide très précieuse !

Bonne soirée,

Gnifrus.
Modifié en dernier par Gnifrus le jeu. 24 avr. 2014 16:16, modifié 1 fois.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Installation automatisée d'un logiciel et Focus

#2

Message par jguinch »

Bizarre... Pourtant, avec les fonctions ControlClick, ControlCommand etc, il de devrait pas y avoir besoin que la fenêtre ait le focus.
C'est quoi comme logiciel que tu veux installer ? (si c'est pas trop indiscret). Il n'y a pas moyen de faire une installation silencieuse ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Installation automatisée d'un logiciel et Focus

#3

Message par mikell »

jguinch a écrit :Bizarre... Pourtant, avec les fonctions ControlClick, ControlCommand etc, il de devrait pas y avoir besoin que la fenêtre ait le focus.
Si la fenêtre perd le focus elle n'est plus active non ?
"Some controls will resist automation unless they are the active window"
" 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
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Installation automatisée d'un logiciel et Focus

#4

Message par jguinch »

Ah oui... :oops:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Installation automatisée d'un logiciel et Focus

#5

Message par Tlem »

En règle générale, pour piloter l'installation d'une application à l'aide de commande de type ControlClic ou apparentée, il vaut mieux prévoir la mise en premier plan (lorsque c'est possible) de la fenêtre à contrôler à chaque fois que l'on souhaite envoyer une "commande". Je n'ai pas la doc sous la main (j'écris du téléphone portable) mais une commande du genre WinActivate("Titre ou handle") devrait bien le faire.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Gnifrus
Niveau 4
Niveau 4
Messages : 81
Enregistré le : mar. 14 juil. 2009 13:48
Localisation : Montauban
Status : Hors ligne

Re: [..] Installation automatisée d'un logiciel et Focus

#6

Message par Gnifrus »

Merci tout d'abord à jguinch, mikell et Tlem pour vos réponses !

Effectivement, WinActivate devrait permettre de remettre la fenêtre au premier plan, afin de pour pouvoir poursuivre l'installation, mais encore faudrait-il que l'utilisateur ne clique pas ailleurs entre le WinActivate et le ControlClick ! (oui, je sais, je suis un peu tordu là....mais j'en ai quelques uns qui sont très forts ! :lol: )

Peut-être devrais-je prévoir une boucle qui permettrait de redonner le focus à la fenêtre dès qu'elle le perdrait et continuerait à boucler tant que l'action ne serait pas effectuée ?

Du style (d'accord, c'est un peu lourd à faire avant chaque ControlCommand mais au moins, on est sûr que tout se passe bien :

Code : Tout sélectionner

While 1
   WinActivate("[CLASS:Notepad]")
   ControlCommand("Sans titre","","[ID:15]","EditPaste", 'bonjour')
   If Not @error Then ExitLoop
WEnd
MsgBox(0,"","et voilà ! ça, c'est fait !!!")
Il y a peut-être plus simple, mais que pensez-vous de cette solution ?

Merci encore pour vos idées, elles m'aident à avancer !

Bonne nuit et peut-être à demain ?

Gnifrus.
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Installation automatisée d'un logiciel et Focus

#7

Message par Hugues »

Salut,

Sinon une méthode un peu "barbare" si l'utilisateur n'a rien à saisir lors de l'installation, c'est la fonction BlockInput(flag) (voir l'aide, flag 1=Disable user input, 0=Enable user input).

Pendant ton installation, tu verrouilles "temporairement" ton clavier et ta souris.
Gnifrus
Niveau 4
Niveau 4
Messages : 81
Enregistré le : mar. 14 juil. 2009 13:48
Localisation : Montauban
Status : Hors ligne

Re: [..] Installation automatisée d'un logiciel et Focus

#8

Message par Gnifrus »

Merci Hugues !

J'attendais d'avoir essayé avant de poster ma réponse ici et de clôturer mon "cas" ! :D
Je ne comprends pas pourquoi tu trouves cette méthode barbare ? :lol:

En tout cas, c'est exactement ce que je cherchais et ta réponse me convient parfaitement.

Et en plus, ça fonctionne du feu de Dieu !!!

Merci encore et bonne continuation !

Gnifrus.
Répondre