Page 1 sur 2
[R] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 13:07
par zahyl
Bonjour,
Je viens de découvrir AutoIt, et les possibilités semblent monstrueuses. je souhaite m'en servir pour automatiser l'installation de petits logiciels.
J'ai voulu tester mais je bloque sur un détail. A un moment il faut décocher l'installation d'une toolbar .
j'ai cru comprendre qu'il faut utiliser cette commande :
ControlCommand ( "title", "text", controlID, "command" [, "option"] )
Mais le controlID change a chaque nouveau démarrage du logiciel.
Il faut donc le récupérer avec le script , et je ne sais pas comment m'y prendre.
Visiblement la réponse se trouce ici :
http://autoitscript.fr/forum/viewtopic.php?f=4&t=1310
Mais je comprend pas bien, parceque pour moi tout ce qui commence par GUI c'est pour faire de l'interface graphique or je ne fait pas ca du tout.
Et puis GUICtrlCreateCheckbox crée une checkbox or je veux seulement décocher une checkbox déjà existante.
Si quelqu'un peut m'éclairer ?
Merci d'avance.
Zahyl
Re: [..] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 13:26
par jguinch
La fonction que tu peux utiliser est ControlCommand (regarde dans la doc).
Tu n'es pas obligé de connaître l'ID, tu peux aussi spécifier le texte à la place (toujours dans la doc : Using AutoIt / Controls).
Re: [..] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 13:28
par parazitenew
moutelous a écrit :Bonjour,
Dans le cas où il est impossible de récupérer l'ID ou la classe du controle, on peut simplement utiliser la commande "Send".
Si par exemple le bouton en question a pour label "Suivant" avec le S de souligné, il suffit d'envoyer la commande
Code
Send("!s")
,si la touche est présélectionnée il suffit d'envoyer
Code
Send("{ENTER}")
etc ...
Il est également possible d'atteindre un controle quelconque d'une fenêtre par l'envoi de quelques "Tab" judicieux
A+
Là il s'agit d'un bouton mais c'est valable pour les autres controls,
Re: [..] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 13:40
par zahyl
jguinch a écrit :La fonction que tu peux utiliser est ControlCommand (regarde dans la doc).
Tu n'es pas obligé de connaître l'ID, tu peux aussi spécifier le texte à la place (toujours dans la doc : Using AutoIt / Controls).
j'ai déjà essayé sans résultat :
Code : Tout sélectionner
ControlCommand ("TNewCheckListBox","texte_de_la_checkbox", "TNewCheckListBox1", "Uncheck", "")
TNewCheckListBox -> Class
TNewCheckListBox1 -> ClassnameNN
Je vais tenter avec une autre syntaxe, peut étre que ca marchera...
@Parazitenew
j'avais vu un truc comme ça, en me positionnant avec des tab sur la checkbox, puis je fais un
Mais cela ne fonctionne pas, ce n'est surment pas + ou - qu'il faut mettre pour les checkbox.
Re: [..] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 13:41
par jguinch
Il faut toujours privilégier l'utilisation de
ControlSend plutôt que
Send.
A noter qu'il est possible d'envoyer un Send à une fenêtre voulue en utilisant ControlSend : il suffit simplement de ne pas spécifier le contrôle :
► Afficher le texte
Code : Tout sélectionner
Run("control main.cpl")
$hWnd = WinWait("Propriétés de : Souris")
ControlSend("Propriétés de : Souris", "", "", "!c")
Sleep(2000)
ControlCommand("Propriétés de : Souris", "", "[TEXT:A&ctiver le verrouillage du clic]", "UnCheck")
Sinon en règle générale, pour cochez une checkbox, il suffit de se positionner dessus et appuyer sur Espace.
Re: [R] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 13:50
par zahyl
jguinch a écrit :
Sinon en règle générale, pour cochez une checkbox, il suffit de se positionner dessus et appuyer sur Espace.
Je viens de m'en rapeller. Du coup cela fonctionne correctement avec un Send.
C'est cette réponse que j'attendais ^^ merci ( je passe le titre en résolu ).
jguinch a écrit :
Il faut toujours privilégier l'utilisation de ControlSend plutôt que Send.
C'est selon le contexte d'utilisation non? tant que je reste dans une seule fenétre je ne devrais pas avoir de souci avec Send?
Re: [..] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 13:51
par mikell
Hmm il me semble qu'il y avait une erreur dans les paramètres du ControlCommand
ça devrait marcher :
Code : Tout sélectionner
ControlCommand ("titre_de_la_fenêtre", "", "TNewCheckListBox1", "Uncheck", "")
Re: [..] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 13:53
par jguinch
Send est toujours bancal étant donné qu'on ne peut jamais être sûr de ce qui sur passe à l'écran (l'utilisateur qui clique, une fenêtre de mise à jour qui apparaît, ou n'importe quoi d'autre qui pique le focus). Essaye ControlSend pour voir...
Re: [..] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 14:05
par zahyl
mikell a écrit :Hmm il me semble qu'il y avait une erreur dans les paramètres du ControlCommand
ça devrait marcher :
Code : Tout sélectionner
ControlCommand ("titre_de_la_fenêtre", "", "TNewCheckListBox1", "Uncheck", "")
Il n'y a pas d'erreur d'exécution, mais la checkbox ne se décoche pas ...
Mais c'est possible que j'ai mal rempli les arguments.
jguinch a écrit :Send est toujours bancal étant donné qu'on ne peut jamais être sûr de ce qui sur passe à l'écran (l'utilisateur qui clique, une fenêtre de mise à jour qui apparaît, ou n'importe quoi d'autre qui pique le focus). Essaye ControlSend pour voir...
je suis en train de test le
ControlSend ( parceque c'est vrai que du coup c'est carrément mieux que
Send ! ) et j'ai un souci pour échapper des apostrophe dans l'argument "texte".
Alors que le même texte dans
WinWaitActive ne pose pas de souci.
Du coup comment on échappe les simples quotes ?
Re: [R] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 14:18
par jguinch
Normalement, on ne les échappe pas.
Par contre pour le ControlCommand, tu peux essayer ça :
Code : Tout sélectionner
ControlCommand ("titre_de_la_fenêtre", "", "[CLASSNN:TNewCheckListBox1]", "Uncheck", "")
C'est quoi le texte exact de la checkbox ?
Re: [R] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 14:38
par zahyl
Autant pour moi, je n'ai pas de problème d'échappement des quotes ( elle n'ont pas besoin d’être échappé en effet) j'avais fait une faute de frappe.
Par contre, c'est une liste de checkbox qui posséde un seul controlID pour tous. Donc ce qui les différencie est "le_texte_de_la_checkbox", qui en pratique est : "Barre d'outil PDFCreator pour ie et firefox".
Du coup j'ai peur que si je fait cette commande :
Code : Tout sélectionner
ControlCommand ("titre_de_la_fenêtre", "", "[CLASSNN:TNewCheckListBox1]", "Uncheck", "")
sans préciser le_texte_de_la_checkbox, il me décoche tout. non?
edit : je viens de test, ca n'a pas marché.
C'est possible qu'un menu déroulant permettant de choisir une selection prédéfinie de checkbox pose problème?
Re: [R] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 14:39
par jguinch
En fait, je pense plutôt que tu devrais plutôt trouver un autre programme d'installation (sans toolbar)...
C'est quoi comme application ?
Re: [R] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 15:07
par zahyl
il n'y a pas d'autre version de setup sans la toolbar car c'est la toolbar de ce logiciel là qu'il propose d'installer.
C'est PDFCreator ( imprimante virtuelle qui permet de générer des pdf depuis word/exel ( ou n'importequoi d'autre) sans perte de qualité importante.
De toute façon ce script ne sera pas mis à disposition des users, du coup j'ai fait un truc pas très beau, mais qui fonctionne.
A la fin, j'espère pouvoir lancer un seul script qui me fera l'install de plein de logiciel. ( et encore ca c'est parceque j'ai envie de savoir faire un peu d'automatisation, pasque la solution la plus simple c'est créer une image disque, genre avec Acronis true Image, mais trève de divagation ceci est une autre histoire

)
Encore merci pour ton aide, c'était rapide et clair.
Re: [R] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 15:20
par parazitenew
Ce n'est pas encore reglé cette histoire? Je croyais avoir apporté la réponse absolue

Re: [R] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 15:35
par jguinch
Tant mieux si tu as réussi.
Par contre, je te conseille de te pencher sur une méthode plus propre, en passant par une installation silencieuse.
Sur le site officiel de PDFCreator, on télécharge un setup propre (sans install de barre d'outil).
Ensuite, comme l'installeur est créé avec Inno Setup, on peut créer un fichier de réponse en lançant l'installeur avec des paramètres :
PDFCreator-1_7_3_setup.exe /SAVEINF="c:\tmp\pdfcreator.inf"
Une fois le fichier de réponse créé, on déploie le programme en spécifiant qu'on utilise ce fichier de réponse (qu'on aura pris soin de mettre à un endroit accessible :
PDFCreator-1_7_3_setup.exe /LOADINF="\\server\share\pdfcreator\pdfcreator.inf"
Bon là on sort du cadre du forum, mais normalement, la quasi-totalité des applications permettent ce genre de chose...
Re: [R] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 15:58
par zahyl
jguinch a écrit :Tant mieux si tu as réussi.
Par contre, je te conseille de te pencher sur une méthode plus propre, en passant par une installation silencieuse.
Sur le site officiel de PDFCreator, on télécharge un setup propre (sans install de barre d'outil).
Ensuite, comme l'installeur est créé avec Inno Setup, on peut créer un fichier de réponse en lançant l'installeur avec des paramètres :
PDFCreator-1_7_3_setup.exe /SAVEINF="c:\tmp\pdfcreator.inf"
Une fois le fichier de réponse créé, on déploie le programme en spécifiant qu'on utilise ce fichier de réponse (qu'on aura pris soin de mettre à un endroit accessible :
PDFCreator-1_7_3_setup.exe /LOADINF="\\server\share\pdfcreator\pdfcreator.inf"
Bon là on sort du cadre du forum, mais normalement, la quasi-totalité des applications permettent ce genre de chose...
Je n'ai pas tout compris ^^
Qu'est ce qu'un fichier de réponse? et qu'entend tu par "installeur", le script Autoit ? Et que vient faire Inno Setup ici ^^
Re: [R] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 16:27
par jguinch
- L'installeur, c'est le programme d'installation (PDFCreator-1_7_3_setup.exe)
- Le fichier de réponse, c'est un fichier (texte ici) qui contient les actions à effectuer par l'installeur (quelles cases cocher...)
- Inno Setup, c'est le logiciel qui a servi à créer l'installeur. Chaque installeur propose (ou non) ses propres options de lancement. Pour Inno Setup, c'est ici :
http://www.jrsoftware.org/ishelp/index. ... tupcmdline
Re: [R] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 16:44
par zahyl
ok, Donc Inno Setup c'est l'équivalent de AutoIt ?
Re: [R] Script d'Automatisation - Décocher une checkbox
Posté : mer. 28 mai 2014 22:16
par jguinch
AutoIt est un
langage de script qui permet de générer des exécutables autonomes, plutôt orienté automatisation de tâches (GUI, système)..
Inno Setup est un logiciel libre permettant de
créer des installateurs pour Windows. Ceux-ci peuvent comporter des scripts programmés en Pascal (
http://fr.wikipedia.org/wiki/Inno_Setup).
Re: [R] Script d'Automatisation - Décocher une checkbox
Posté : ven. 30 mai 2014 09:55
par zahyl
okokok, c'est pas mal ça, sauf pour les script Pascal ^^ je connais pas du tout

.
En tout cas merci pour les infos,
J'ai une dernière petite question, il y a un irc fr pour Autoit ou non?
