[R] Installation automatisée d'un logiciel et Focus
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
Gnifrus
- 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
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.
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.
Re: [..] Installation automatisée d'un logiciel et Focus
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 ?
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 !
- mikell
- 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
Si la fenêtre perd le focus elle n'est plus active non ?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.
"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 )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Re: [..] Installation automatisée d'un logiciel et Focus
Ah oui... 
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- Tlem
- 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
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é".
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

- Messages : 81
- Enregistré le : mar. 14 juil. 2009 13:48
- Localisation : Montauban
- Status : Hors ligne
Re: [..] Installation automatisée d'un logiciel et Focus
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 !
)
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 :
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.
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 !
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 !!!")Merci encore pour vos idées, elles m'aident à avancer !
Bonne nuit et peut-être à demain ?
Gnifrus.
Re: [..] Installation automatisée d'un logiciel et Focus
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.
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

- Messages : 81
- Enregistré le : mar. 14 juil. 2009 13:48
- Localisation : Montauban
- Status : Hors ligne
Re: [..] Installation automatisée d'un logiciel et Focus
Merci Hugues !
J'attendais d'avoir essayé avant de poster ma réponse ici et de clôturer mon "cas" !
Je ne comprends pas pourquoi tu trouves cette méthode barbare ?
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.
J'attendais d'avoir essayé avant de poster ma réponse ici et de clôturer mon "cas" !
Je ne comprends pas pourquoi tu trouves cette méthode barbare ?
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.


