[R] 3000 fois la commande Send, c'est faisable ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Ctrl-Alt-Suppr
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mar. 07 août 2007 17:37
Status : Hors ligne

[R] 3000 fois la commande Send, c'est faisable ?

#1

Message par Ctrl-Alt-Suppr »

Bonjour à tous,

J'ai un p'tit souci de débutant, et l'aide ... ne m'aide pas. (j'ai pas le niveau pour la déchiffrer)
Je voudrais, dans un logiciel, importer 3000 fichiers.
En me débrouillant avec Excel et MSDOS j'ai fait les 3000 lignes, contenant les chemins de tous les fichiers.
J'arrive à faire ce que je veux, avec ce script :

Code : Tout sélectionner

While 1 
   If _IsPressed("20", $dll) Then 
   Send("!d""i""{TAB}""{TAB}") 
   Send("chemin\du\fichier\fichier.ext")
EndIf
Le problème, c'est que j'aimerai pouvoir mettre la commande sur une seule ligne. Mais si j'utilise :

Code : Tout sélectionner

Send("!d""i""{TAB}""{TAB}""chemin\du\fichier\fichier.ext")
J'ai un joli "chemin\... qui s'affiche. (avec le " en trop !!!!)



Questions :
■ Est-ce envisageable d'enchainer 3000 fois ce genre de commande ?
■ Peut-on enchainer des commandes sur une même ligne ? (j'espère car sinon je sais pas comment je vais générer les lignes du script ...)
■ Est-ce-que quelqu'un aurait l'amabilité de me faire un exemple de script en y incorporant un petit délai d'attente pour que le logiciel est le temps de "souffler" entre 2 importations.

D'avance, merci !

Bonne journée.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#2

Message par Tlem »

Vous êtes bien courageux de vouloir saisir 3000 fois ce type de ligne !

En ce qui me concerne, je stockerais le nom des 3000 fichiers dans un seul fichier, puis je ferais une seule boucle.

Code : Tout sélectionner

#include <File.au3>

_FileReadToArray ( "Ficlist.txt" , $FicList ) 

For $i = 1 to Ubound ( $FicList ) - 1 
If _IsPressed ( "20" , $dll ) Then 
Send ( "!d i {TAB} {TAB}" ) 
Sleep ( 100 ) 
Send ( $FicList[$i] ) 
EndIf
Next
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é".
Ctrl-Alt-Suppr
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mar. 07 août 2007 17:37
Status : Hors ligne

#3

Message par Ctrl-Alt-Suppr »

Merci pour cette réponse.
En fait, le plus compliqué n'est pas de générer les 3000 lignes.
(en partant d'un fichier de données, j'arrive à extraire tous les fichiers "texte" qui m'intéressent. Problème : la structure de ceux-ci n'est pas conservée et le logiciel ne les reconnaît plus. Par contre, avec quelques commandes DOS et en bidouillant par excel il est facile de les lister, puis de générer les 3000 lignes.
C'est un peu plus gênant si ça devient 6000 ... ou 9000 mais ça reste envisageable)



Par contre, mon script n'était pas complet. (désolé je ne suis pas chez moi) Mais en gros, l'idée c'est de faire :
Alt + D
I
TAB
TAB
chemin du fichier n°1
Entrer
attendre 0,1 sec
Alt + D
I
TAB
TAB
chemin du fichier n°2
Entrer
attendre 0,1 sec
........
Alors qu'avec l'exemple j'ai l'impression que le script va envoyer :
Alt + D
I
TAB
TAB
chemin du fichier n°1
chemin du fichier n°2
chemin du fichier n°3
chemin du fichier n°4 ............... et ça, ça ne fonctionnera pas : - (
Donc je me permets de reposer les mêmes questions :
■ est-ce-que ça pose problème d'enchaîner 3000 send ? (vous allez me dire que je le verrai bien, mais si à l'avance, les adeptes d'AutoIT savent que ce genre de manip n'est pas fiable, une alternative serait la bienvenue ...)
■ est-ce-qu'on peut écrire plusieurs commandes sur une même ligne ? ou alors comment ne pas avoir de " parasite après TAB ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#4

Message par Tlem »

Ctrl-Alt-Suppr a écrit :est-ce-que ça pose problème d'enchaîner 3000 send ?
Non ça ne gène pas, il vous faudra prévoir les pauses nécessairent au fonctionnement du script.
Ctrl-Alt-Suppr a écrit :une alternative serait la bienvenue ...
Avec un peut plus de données cela pourrait être envisageable.
Ctrl-Alt-Suppr a écrit :est-ce-qu'on peut écrire plusieurs commandes sur une même ligne ?
Oui.
Ctrl-Alt-Suppr a écrit :comment ne pas avoir de " parasite après TAB ?
Ceci vous conviendrait-il ?
Send ( "!d i {TAB} {TAB} chemin\du\fichier\fichier.ext" )
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é".
Répondre