Page 1 sur 1
[R] Problème d'utilisation de la fonction Chr
Posté : mer. 12 déc. 2007 15:38
par Theodoric
Bonjour, je souhaite, pouvoir afficher des guillemets sans les ecrire directement car autoIt ne le permets pas. Donc en utilisant leur code ascii, je devrais pouvoir le faire, mais je n'y arrive pas....quelqu'un aurait il une idée?
ex: je dois agir sur une fenêtre d'install d'un programme qui a mal été codée semble t'il et pour qu'elle puisse être reconnue, il faut que je puisse correctement la nommer.
or si je code ceci:
Code : Tout sélectionner
WinWait(""IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard","The InstallShield® W")
Scite ne l'accepte pas.
Code : Tout sélectionner
WinWait("Chr(34)IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard","The InstallShield® W")
là, il l'accepte mais il ne remplace pas le code par le charactère correspondant.
et si je fais cela:
Code : Tout sélectionner
WinWait(Chr(34),"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard","The InstallShield® W")
il me passe le reste du texte dans la box et non pas à la suite...
Car le résultat escompté est:
"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard
C'est peut être le BA-ba du codage, mais je suis assez mauvais dans le genre...
Merci mille fois à ceux qui me répondront
Posté : mer. 12 déc. 2007 16:35
par ani
bonjour et soit le bienvenu
tu y es presque ,tu n'es pas obligé d'utilisé le caractère ascii (quote)
vlà l'exemple
chr(34)
& "IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard"
ou bien tu utilise les simple quote ' quand tu un double comme ci-dessous
'"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard
'
Quand tu as des répétitions de ce genre cree une variable sa permet de 1 le problème de faute d'othographe
exemple
Code : Tout sélectionner
$IAF = '"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard'
win...($IAF,"The InstallShield® W")
je m'exprime mal... excuse si c'est le cas.
d'après ce que je lis = InstallShield Wizard, permet de faire une installation visuel ou silencieuse faudrai voir quel sont les paramètres du programme IAF (autoinstall), dont je vais faire une recherche car inconnu . A toute
Petite information, dans le cadre d'installation automatique, autoit met a disposition un logiciel du nom de AU3info, celui-ci permet de visualiser les informations de l'interface on y trouve la class/ID/texte ect... sa évite d'utiliser dans son script des Send a gogo (utiliser plutôt le controlclick ou controlcommand comme fonction c'est plus efficace pour cibler).
voilà si besoin, on est là

Merci de m'avoir répondu si vite et bien[R]
Posté : jeu. 13 déc. 2007 09:58
par Theodoric
Merci beaucoup Ani, car tes solutions sont, on ne peut plus efficaces.
Pour t'expliquer un peu plus l'histoire, je suis en train de prévoir un déploiement d'une application qui s'appelle "IAF thin client 7.3.0" à mon boulot mais comme le package MSI fournis refuse de se déployer correctement sous Active directory, j'en suis venu à utiliser l'executable qui lance "installshield wizard" comme tu l'as vu et qui installe le soft. Je souhaite biensûr qu'il le fasse sans que l'utilisateur intervienne et pourquoi pas même en silencieux.
Evidemment, n'étant pas programmeur moi même, j'ai forcemment des lacunes et je n'hésiterai donc pas à me referer à ce forum qui m'a l'air extrêmement bien construit, convivial, élégant et rempli de nombreuses informations utiles. Bref, une mine d'or pour un novice comme moi. Sachant de plus, que j'ai de très nombreux déploiements en vue, AutoIt sera donc mon soft de chevet pour mener à bien toutes ces actions.
Encore mille fois merci pour ta prompte réponse et à très bientôt pour la suite de cette histoire s'il y en a une...
Posté : jeu. 13 déc. 2007 10:31
par ani
Tout dépendra de ton installation, si tu ne sélectionne aucune option lors de la préparation du programme alors il sera possible d'y faire une install silencieuse, dans le cas ou y a un choix selectif, ce n'est ni un problème, ça prendra un peu plus de temp.
Le programme est-il compressé en MSI ?
Si c'est le cas, y a un exemple d'installation dans l'aide général du forum, proposé par vins83
> cliquer <
Dans l'aide d'autoit si on fait la recherche de msi on obtiend un exemple d'utilisation.
ou c'est un exe autoExcecutable ?
Y a telement de soluce, bein la dessus je me remet au AU3.
Posté : jeu. 13 déc. 2007 10:50
par Theodoric
En fait, il y a juste le répertoire d'installation à modifier.
Pour ta 2ème question, l'EXE décompresse le premier MSI qui s'appelle IAF Thin Client 7.3.0.msi puis le ISScript.msi de microsoft et te propose un répertoire d'installation qu'il faut changer puis copie les fichier et c'est fini...
voici le code autoIt dont je suis en train d'enlever tous les mouvements de souris pour que ce soit plus rapide encore et qui est quasiment fonctionnel:
► Afficher le texte
Code : Tout sélectionner
Run ("X:\GemBase730\setup_gtc_minimum_v73-0_intel32.exe")
Opt("MouseCoordMode",0)
WinWait('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"The InstallShield® W")
If Not WinActive('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"The InstallShield® W") Then WinActivate('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"The InstallShield® W")
WinWaitActive('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"The InstallShield® W")
Send("{ENTER}")
Sleep(100)
WinWait('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Setup will install ")
If Not WinActive('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Setup will install ") Then WinActivate('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Setup will install ")
WinWaitActive('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Setup will install ")
Send("{TAB}{TAB}{ENTER}")
Sleep(100)
WinWait("Choose Folder","Please select the in")
If Not WinActive("Choose Folder","Please select the in") Then WinActivate("Choose Folder","Please select the in")
WinWaitActive("Choose Folder","Please select the in")
MouseClick("left", 36, 88)
Sleep(100)
Send("{SHIFTDOWN}p{SHIFTUP}rogram{SPACE}{SHIFTDOWN}f{SHIFTUP}iles{CTRLDOWN}{ALTDOWN}_{CTRLUP}{ALTUP}")
MouseClick("left", 177, 314)
Sleep(100)
WinWait('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Setup will install ")
If Not WinActive('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Setup will install ") Then WinActivate('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Setup will install ")
WinWaitActive('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Setup will install ")
MouseClick("left", 361, 357)
Sleep(100)
WinWait('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Setup has enough inf")
If Not WinActive('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Setup has enough inf") Then WinActivate('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Setup has enough inf")
WinWaitActive('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Setup has enough inf")
MouseClick("left", 364, 361)
Sleep(100)
WinWait("Program Manager","FolderView")
If Not WinActive("Program Manager","FolderView") Then WinActivate("Program Manager","FolderView")
WinWaitActive("Program Manager","FolderView")
MouseClick("left", 752, 680)
Sleep(100)
WinWait('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Yes, I want to view ")
If Not WinActive('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Yes, I want to view ") Then WinActivate('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Yes, I want to view ")
WinWaitActive('"IAF Thin Client (Minimum) 7.3.0 - InstallShield Wizard',"Yes, I want to view ")
Send("{ENTER}")
Sleep(100)
WinWait("GTCReadme.txt - Bloc-notes","")
If Not WinActive("GTCReadme.txt - Bloc-notes","") Then WinActivate("GTCReadme.txt - Bloc-notes","")
WinWaitActive("GTCReadme.txt - Bloc-notes","")
MouseClick("left", 750, 18)
Sleep(100)
Posté : jeu. 13 déc. 2007 11:01
par ani
ok, faudra pour ma part que je fasse un teste, ce qui veut dire télécharger le programme , donc je le cherche ou si t'a un lien
merci

Posté : jeu. 13 déc. 2007 11:14
par Theodoric
je ne suis pas sûr qu'on puisse le télécharger car c'est un progiciel de chez ROSS Enterprise (
http://www.rossinc.com) qui s'appelle GEMBASE.
Si tu avais une adresse ftp, je pourrai te le déposer et tu pourrais voir, bien que ce soit assez interdit ce que je fais mais bon...
Posté : jeu. 13 déc. 2007 12:08
par ani
Vu le code posté, j'ai déjà du mal

Pourquoi? lisibilité et trop de répétition, oui je sais tu va me dire que tu débute, alors prenons les bonnes habitudes, voici des astuces Utile pour tout novice.
1.Lire l'aide au moins une fois et prendre son temp
2.Tester les exemple proposé par le logiciel (tout les fichiers)
Ne prend pas çà pour toi, c'est pour les futur lecteur du post

même si l'aide est en Anglais rien n'est impossible
L'exemple proposé dans l'aide sur Winzip, c'est un exemple qui nous permet d'utiliser 3 à 4 fonctions avec leur utilitaire Au3info et de s'y familiarisé mais çà ne reste q'un exemple, pour ceux qui utilie le dos l'installation se fera en ligne de cmd, y aura differente manière mais c'est pour aboutir au même résultat.
Habitude à prendre
Créer des variables mais ce n'est pas toujours nécessaire, mais çà reste plus facile au niveau visuel et en cas de répétition on ne risque pas d'apporter une erreur dans le script pour faute orthographique, une variable pour moi c'est un contenu contenant une ou des valeur(s) comme le SET sous ms-dos, on y prend vite goût

, comme il est mis plus haut.
utilise aussi le AU3info pour récuperer les info des bouton que tu clique,
j'ai indiqué un exemple sur ce
> Post <
remplace les send par un controlclick ou même controlcommand.
tu gagnera quelque ligne, vu qu'on cible la fenêtre avec tel frame et non une autre, donc les winwait/sleep ne seront plus.
Sans pouvoir tester le logiciel pour y voir son comportement (exe et msi) je ne pourrait contribuer à une Soluce.
navré

Posté : jeu. 13 déc. 2007 12:19
par Theodoric
Je te remercie de ta patience et vais reprendre tout le script selon tes conseils et vais le rendre plus lisible. D'autres questions viendront peut-être à ce moment là.
merci beaucoup et à bientôt
Posté : jeu. 13 déc. 2007 15:40
par Theodoric
J'ai justement une question, comment faire pour rentrer le nouveau chemin d'installation à l'endroit prévu puisque aucune des fonction, controlsend, controlsettext, voire controlcommand ne fontionnent?
y aurait il des exemples sur le forum, je n'en ai pas encore trouvé?
merci d'avance
l'ajout du chemin dans la ligne Edit du choose folder
Posté : ven. 14 déc. 2007 10:29
par Theodoric
J'ai trouvé, pour l'ajout du chemin dans la fenêtre d'edit du choix du path d'install, mais je l'ai fait avec un "send" de variables de chaine de caractères, par contre je n'ai toujours pas réussi à utiliser convenablement les "ControlClick" et les "ControlCommand" car je n'ai pas trouvé d'exemple concret, ni dans l'aide, ni sur le forum...
Quelqu'un en aurait il sous la main?
Merci d'avance
Posté : ven. 14 déc. 2007 19:17
par Tlem
Avez-vous pensé à utiliser la fonction de recherche du forum avec le terme ControlClick ou ControlCommand ?
Vous verrez que plusieurs exemples sont à votre disposition.