[R] Inscrire certaines valeurs à certains endroits

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
dadrocket
Niveau 2
Niveau 2
Messages : 27
Enregistré le : jeu. 12 juin 2008 22:27
Status : Hors ligne

[R] Inscrire certaines valeurs à certains endroits

#1

Message par dadrocket »

Bonjour à tous,

J'effectue des mesures radios avec un appareil qui me génère des 66 courbes nommées de 00 à 66. Grâce à un logiciel appelé "Handhed Software Tools" je peux (et j'y suis obligé ) éditer ces courbes.

Voici une capture d'écran des courbes en question :

Image

Mes buts sont :
- remplacer le "RETURN LOSS" sur les 66 courbes par un texte qui me serait demandé par un pop up au démarrage du script
- remplacer le chiffre (ici 65) par un texte en fonction du nom de la courbe active (si la courbe active contient "65.dat" alors écrire "UMTS R5B S3A1D" etc...)
- fermer la courbe renommée et passer à la suivante

Voici les correspondances des numéros :

UMTS R4T S1A1M <=> 01
UMTS R4P S1A1M <=> 02
UMTS GTMA S1A1M <=> 03
UMTS BTMA S1A1M <=> 04
UMTS RTUL S1A1M <=> 05
UMTS RTDL S1A1M <=> 06
UMTS DTF S1A1M <=> 07
UMTS R3 S1A1M <=> 08
UMTS LON S1A1M <=> 09
UMTS PC S1A1M <=> 10
UMTS R5B S1A1M <=> 11
UMTS R4T S1A1D <=> 12
UMTS R4P S1A1D <=> 13
UMTS GTMA S1A1D <=> 14
UMTS BTMA S1A1D <=> 15
UMTS RTUL S1A1D <=> 16
UMTS RTDL S1A1D <=> 17
UMTS DTF S1A1D <=> 18
UMTS R3 S1A1D <=> 19
UMTS LON S1A1D <=> 20
UMTS PC S1A1D <=> 21
UMTS R5B S1A1D <=> 22
UMTS R4T S2A1M <=> 23
UMTS R4P S2A1M <=> 24
UMTS GTMA S2A1M <=> 25
UMTS BTMA S2A1M <=> 26
UMTS RTUL S2A1M <=> 27
UMTS RTDL S2A1M <=> 28
UMTS DTF S2A1M <=> 29
UMTS R3 S2A1M <=> 30
UMTS LON S2A1M <=> 31
UMTS PC S2A1M <=> 32
UMTS R5B S2A1M <=> 33
UMTS R4T S2A1D <=> 34
UMTS R4P S2A1D <=> 35
UMTS GTMA S2A1D <=> 36
UMTS BTMA S2A1D <=> 37
UMTS RTUL S2A1D <=> 38
UMTS RTDL S2A1D <=> 39
UMTS DTF S2A1D <=> 40
UMTS R3 S2A1D <=> 41
UMTS LON S2A1D <=> 42
UMTS PC S2A1D <=> 43
UMTS R5B S2A1D <=> 44
UMTS R4T S3A1M <=> 45
UMTS R4P S3A1M <=> 46
UMTS GTMA S3A1M <=> 47
UMTS BTMA S3A1M <=> 48
UMTS RTUL S3A1M <=> 49
UMTS RTDL S3A1M <=> 50
UMTS DTF S3A1M <=> 51
UMTS R3 S3A1M <=> 52
UMTS LON S3A1M <=> 53
UMTS PC S3A1M <=> 54
UMTS R5B S3A1M <=> 55
UMTS R4T S3A1D <=> 56
UMTS R4P S3A1D <=> 57
UMTS GTMA S3A1D <=> 58
UMTS BTMA S3A1D <=> 59
UMTS RTUL S3A1D <=> 60
UMTS RTDL S3A1D <=> 61
UMTS DTF S3A1D <=> 62
UMTS R3 S3A1D <=> 63
UMTS LON S3A1D <=> 64
UMTS PC S3A1D <=> 65
UMTS R5B S3A1D <=> 66

Manuellement, voici comment je procède :

Je cliques sur le bouton en rouge :

Image

Apparait cette fenêtre :

Image

Voici les modifications que j'y apporte

Image

l'enregistrement des modifications

Image

Je souhaiterais automatiser toutes ces modifications pour les 66 courbes.

Je peux vous fournir les informations de Window Info voir même le logiciel que j'utilise pour ceux qui souhaitent m'aider.

Merci d'avance.
Modifié en dernier par Tlem le ven. 20 juin 2008 07:34, modifié 2 fois.
Raison : Mise en forme du titre.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Inscrire certaines valeurs à certains endroits

#2

Message par Tlem »

Bonsoir, et bienvenu à notre 500ième incrit sur le forum. 8)
Pensez à lire les règles de présentation d'un post. :P

A première vue, c'est réalisable.

1 - Pour le texte de remplacement du début du script, utilisez la commande : InputBox

2 - Pour le clic sur le bouton, deux solutions. La première c'est de voir avec Windows Info si le bouton à un identifiant différent des autres boutons et de l'utiliser pour cliquer dessus.
Si ce n'est pas le cas existe-t'il une séquence de touche qui réalise la même fonction ?

3 - Récupérer le numéro de la couche dans le champs 'Sub Title' de la fenêtre 'Plot Properties' (Windows Info doit vous aider à avoir les infos nécessaires).

4 - Ecrire dans le champs 'Main Title' la valeur de l'inputBox du début (Voir Windows Info pour les informations du champs).

5 - Ecrire dans le champs 'Sub Title' la valeur de correspondance récupérée en 3 (Mettre les correspondance en tableau par exemple au début du script).

6 - Faire un ALT + O pour valider la fenêtre (Voir la fonction Send).

7 - Faire un ALT + Y pour valider le changement.

Voilà un squelette du script que vous devez réaliser.
Il ne faut pas oublier de voir comment activer le lancement de la modification (Une combinaison de touches HotKeySet me semble une bonne idée).
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é".
dadrocket
Niveau 2
Niveau 2
Messages : 27
Enregistré le : jeu. 12 juin 2008 22:27
Status : Hors ligne

Re: [..] Inscrire certaines valeurs à certains endroits

#3

Message par dadrocket »

Merci Tlem pour ta réponse si rapide !

Je reprends donc tes étapes une par une :

1) Pas de problèmes pour la "Input Box".
Voici le petit script qui en découle :

Code : Tout sélectionner

$answer = InputBox("BYT Curves Kicker", "Entrez le numéro et le nom du site", "", "", _
    -1, -1, 0, 0)
Question : comment récupérer les informations entrées par l'utilisateur pour s'en servir plus tard dans le script ?

2) Pour le clic sur le bouton, voici ce que "Auto It Macro Generator" me génère :

Code : Tout sélectionner

Opt("WinTitleMatchMode", 4)
WinWait("Handheld Software Tools","C:\Documents and Settings\davi")
ControlClick("Handheld Software Tools","C:\Documents and Settings\davi","msvb_lib_toolbar1")
WinWait("Plot Properties","")
ControlClick("Plot Properties","","TabStrip20WndClass1")
Cela fonctionne, le script appuie de lui même sur le bon bouton et se positionne sur la bonne ligne.

Questions :
Comment faire pour que le script fonctionne avec n'importe quel répertoire ? (et non pas obligatoirement "C:\Documents and Settings\davi" comme ici)

Comment faire pour que le script récupère le nom inscrit dans la fenêtre de la courbe active, le compare aux correspondances données plus haut et colle le bon texte ?

Meme question pour écrire les données inscrites par l'utilisateur dans l'InputBox du début au bon endroit.

Pour ce qui est de l'enregistrement des courbes, je pense que ça sera plus facile que ces 2 grosses étapes.

J'attends tes éclaississements avec impatience Tlem !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Inscrire certaines valeurs à certains endroits

#4

Message par Tlem »

dadrocket a écrit :J'attends tes éclaississements avec impatience Tlem !
Et bien en fait, une grande partie de ses d'éclaircissements ce trouve ici.

:P
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é".
dadrocket
Niveau 2
Niveau 2
Messages : 27
Enregistré le : jeu. 12 juin 2008 22:27
Status : Hors ligne

Re: [..] Inscrire certaines valeurs à certains endroits

#5

Message par dadrocket »

Bonjour,

Je souhaiterais savoir comment écrire la valeur d'une variable.

Voici le petit script que j'ai fait et qui fonctionne :

Code : Tout sélectionner

 $var = inputbox("BYT Curves Kicker","Entrez le numéro et le nom du site")

Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)
WinWait("Handheld Software Tools",":\")
If Not WinActive("Handheld Software Tools",":\") Then WinActivate("Handheld Software Tools",":\")
WinWaitActive("Handheld Software Tools",":\")
Send("{ALTDOWN}{ALTUP}vp")
WinWait("Plot Properties","Plot/Limit Line Widt")
If Not WinActive("Plot Properties","Plot/Limit Line Widt") Then WinActivate("Plot Properties","Plot/Limit Line Widt")
WinWaitActive("Plot Properties","Plot/Limit Line Widt")
send("{TAB}{TAB}{TAB}")
Send("{DEL 20}")
Je souhaiterais écrire la valeur inscrite par l'utilisateur dans l'inputBox du début .

Merci !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Inscrire certaines valeurs à certains endroits

#6

Message par Tlem »

Vous trouverez la valeur dans la variable $var.
Il vous suffit de la renvoyer ou vous en avez besoin.
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é".
dadrocket
Niveau 2
Niveau 2
Messages : 27
Enregistré le : jeu. 12 juin 2008 22:27
Status : Hors ligne

Re: [..] Inscrire certaines valeurs à certains endroits

#7

Message par dadrocket »

En effet c'était simple :D

Plus dur maintenant, comment analyser le titre de la courbe en cours et copier le texte
correspondant ?

Voici les infos de Window Info :
Image

Je ne sais pas trop comment m'en servir.

Merci de m'éclairer :)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Inscrire certaines valeurs à certains endroits

#8

Message par Tlem »

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é".
dadrocket
Niveau 2
Niveau 2
Messages : 27
Enregistré le : jeu. 12 juin 2008 22:27
Status : Hors ligne

Re: [..] Inscrire certaines valeurs à certains endroits

#9

Message par dadrocket »

Bonsoir,

J'ai déjà lu ces pages mais j'avoue que là je piétine .

Faut-il que je créé une variable qui aurait pour valeur le titre de la fenêtre et que je travaille avec cette variable ensuite ?

Merci Tlem.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Inscrire certaines valeurs à certains endroits

#10

Message par Tlem »

A première vue, comme ça, suite à ce que je vous ais déjà indiqué précédemment (3° de mon premier post) je dirais qu'il vous faut ouvrir la fenêtre 'Plot Properties', lire le contenu de 'Sub Title' (Utilisez Windows Info pour avoir les éléments de l'information dont vous avez besoin) puis utilisez ControlGetText pour lire la valeur du texte (Le nom de la courbe dans votre cas).

Ensuite comparez cette valeur au tableau que vous devriez créer pour avoir les titres de remplacement, puis exécutez le 4° puis le 5° pour mettre à jour les infos de 'Plot Properties'.
Utilisez ControlSetText pour écrire les nouvelles valeurs dans les champs concernés (Encore une fois, utilisez Windows info pour avoir les informations des champs à modifier).

PS : Si par malheur (Ce qui ne devrait pas être votre cas) vous ne pouvez accéder à des informations plus précises sur les champs à modifier (Class ou ID), il vous faudra dans ce cas passer par l'utilisation de la tabulation.
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é".
vinca
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mar. 10 juin 2008 15:55
Status : Hors ligne

Re: [..] Inscrire certaines valeurs à certains endroits

#11

Message par vinca »

salut tlem
je travaille avec dadrocket sur ce script

j'ai essayé d'utiliser controlgettext sans succès.

Code : Tout sélectionner

$courbe = ControlGetText ( "Handheld Software Tools", "Plot Properties", "ThunderRT6TextBox11")
MsgBox(4096, "Test", $courbe)

controlgettext ne semble pas voir le contenu de la case qui nous interresse

merci de nous aider
TITRE COURBE2.JPG
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Inscrire certaines valeurs à certains endroits

#12

Message par Tlem »

Essayez peut être ceci :

Code : Tout sélectionner

$courbe = ControlGetText ( "Handheld Software Tools", "Plot Properties", "[CLASS:ThunderRT6TextBox; INSTANCE:11]")
MsgBox(4096, "Test", $courbe)
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é".
dadrocket
Niveau 2
Niveau 2
Messages : 27
Enregistré le : jeu. 12 juin 2008 22:27
Status : Hors ligne

Re: [..] Inscrire certaines valeurs à certains endroits

#13

Message par dadrocket »

Le problème est résolu, merci pour ton aide Tlem.

A bientôt pour de nouveau soucis :lol:
Répondre