[C] Besoin basic, autoit n'est il pas surdimmensionné...

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ted69000
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 19 févr. 2009 17:37
Status : Hors ligne

[C] Besoin basic, autoit n'est il pas surdimmensionné...

#1

Message par ted69000 »

Bonjour à tous

Sur un poste info (superviseur) me servant de robot d'appel (téléphonique) vers des stations de mesure, j'ai une appli dédiée qui tourne.
Le problème : lorsque le poste info plante, ou redémarre, je dois assurer la continuité des appels.

Je lance automatiquement une session xp, pas de souci,
je lance mon appli automatiquement, no souci,
mais cette dernière demande d'acquiter un message de type "voulez vous relancer les appels Oui Non !!!

Je souhaiterais donc après un certain délai taper automatiquement sur la touche enter.
AutOit n'est il pas surdimmensionné ?
Mais si je peux compiler un mini exe, ça serait l'idéal...
est ce que les deux commandes
sleep(500)
send("{ENTER}")

suffisent ? ou il faudra aller plus loin (note : je suis une bille en programmation...).
Si quelqu'un avait la gen tillesse de me dépanner...

Merci d'avance
Thierry
Modifié en dernier par Tlem le mar. 28 avr. 2009 21:33, modifié 2 fois.
Raison : Ajout de la balise [..]
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: Besoin basic, autoit n'est il pas surdimmensionné...

#2

Message par FernandG »

Bonsoir,

Avant de te faire "taper" sur les doigts, pense à respecter les règles de présentation d'un post que tu trouveras ici.
AutoIT n'est il pas surdimensionné ?
Au contraire AutoIT est parfait pour ce type d'attente.

Il y a plusieurs façons de traiter ta demande. Je vais t'en montrer une mais saches qu'il est possible de faire autrement.

Mon exemple :

Code : Tout sélectionner

$titre = "Titre de ton application téléphonique"
WinWait($titre)
WinActivate($titre)
ControlClick ($titre, "Du texte présent dans la fenêtre", "Button2")
Je suis allé au plus simple pour répondre à ton besoin y compris dans l'utilisation des commandes. A toi maintenant de consulter l'aide si tu souhaites étoffer, développer un peu plus ton script.

Maintenant, je t'explique un peu :
  • Pour le $titre, c'est le titre de ton application. Tu peux l'obtenir en utilisant le programme Au3Info.exe installé en même temps qu'AutoIT.
  • Le WinWait, te permet de te dispenser du Sleep et surtout d'éviter que le script continue avant même que ton application apparaisse. T'évitant ainsi l'effet aléatoire.
  • Le WinActive, te permet d'activer automatiquement la fenêtre au premier plan. Cette ligne n'est pas réellement indispensable contenu de la commande qui suit. Ce te permet de mieux visualiser les étapes et ton script.
  • Et enfin le ControlClick , te permet de cliquer sur le bouton que tu souhaites. On ne sait jamais si un autre bouton a le focus au moment de ton Send("{ENTER}")
    . Pour connaître le nom du bouton et le numéro exact, utilise à nouveau Au3Info.exe. L'avantage de ControlClick , c'est qu'il va traiter directement la bonne fenêtre, y compris si elle est en arrière plan.
Voilà, j'espère que ce début te permettra de répondre à ton attente.

Bonne soirée.
AutoITement.
ted69000
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 19 févr. 2009 17:37
Status : Hors ligne

Re: Besoin basic, autoit n'est il pas surdimmensionné...

#3

Message par ted69000 »

Bonjour

Merci pour ces réponses, et votre aide.
Dés que j'ai du temps, je me pencherai sérieusement sur autoIT, il me semble extrêmement intéressant.
Je fais un peu de VBA pour excel, et je pense que c'est un excellant complément, notamment pour piloter des applis externes (pilotage d'automates de mesure), déclencher l'envoi de mesure ou de fichier, etc...
Euuh, si j'ai bien compris, au3info permet de scanner les fenêtres en cours et de détecter les entrées (clics) possibles ?.
Je dois donc lacer cet utilitaire sur le superviseur au moment où le message à actionner apparait ?

Merci encore de consacrer du temps à un débutant pressé...

Thierry
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

Re: Besoin basic, autoit n'est il pas surdimmensionné...

#4

Message par tolf »

FernandG a écrit :Bonsoir,

Avant de te faire "taper" sur les doigts, pense à respecter les règles de présentation d'un post que tu trouveras ici
Vous n'avez toujours pas mis la balise [..], et votre titre n'est pas évocateur : "besoin basique" ne correspond pas à un sujet. De plus, la réponse de FernandG répond à votre problème donc le sujet est résolu, ce qui signifie le remplacement de la balise [..] par la balise [R].
==> éditez votre premier post si vous ne voulez pas qu'il finisse à la poubelle.

De plus, merci d'utiliser les balises de code comme ceci :

Code : Tout sélectionner

sleep(500)
send("{ENTER}")[/code ]

Ce qui donne, sans l'espace après "code" :
[code=text]sleep(500)
send("{ENTER}")
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
ted69000
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 19 févr. 2009 17:37
Status : Hors ligne

Re: Besoin basic, autoit n'est il pas surdimmensionné...

#5

Message par ted69000 »

[..]
Voilà pour la balise...
Ensuite, un peu d'indulgence svp...
C'est ma première intervention sur ce forum !
Donc, que mon titre soit mal rédigé, certes, mais il correspond à une demande précise :
AutoIT n'est il pas surdimensionné pour réalisé un clic de souris automatiquement ? (Le besoin basique, merci pour l'orthographe :wink: ).
Maintenant, je remercie FernandG pour ces contributions.
fernandG :
Je n'ai pas réussi à mettre en place ton bout de code...
Captage des infos ok avec l'utilitaire,
Mais pour la suite...
L'appli dans laquelle je dois cliquer est un développement Windev.
Le nom de l'appli contient le nom, + une partie variable entre parenthèses inscrivant l'environnement réseau.
J'ai recopié scrupuleusement cette longue phrase, mais les tests restent vains.
Y a t'il moyen de mettre une partie du nom, avec un caractère du style nom*, pour indiquer qu'il y a une suite, mais qu'on ne veut pas toute l'inscrire ?
Ensuite, comme on fait appelle trois fois à la variable $titre, je ne suis pas sorti de l'auberge.
Enfin, dans la partie

Code : Tout sélectionner

ControlClick ($titre, "Du texte présent dans la fenêtre", "Button2")
J'ai peut être une source d'erreur dans "Du texte..."
C'est bien le message même dans la fenêtre ?
Dans ce cas, il est sur 2 lignes...quel est le caractère retour RC ?
Lorsqu'on saisi la fonction ControlClick, AutoIT indique la syntaxe des paramètres, qui sont plus nombreux que ceux que tu m'indiques... (ID, etc)
Je te mets mon bout de code qui ne fonctionne pas...

Code : Tout sélectionner

$titre="SIRCADE XPRO (ADMINISTRATEUR, Administrateur 1 en C:\Documents and settings\admin_appel\Mes documents\gestat-brut)"
WinWait($titre)
WinActivate($titre)
ControlClick($titre, "SIRCADE a été arrêté avec l'appel automatique actif Voulez-vous relancer l'appel automatique ?", 6 [, Button1 [, clicks [, 263 [,460 ]]]] )
Voilà, après les tests, le focus sur l'appli ne fonctionne pas (problème de titre).

Pour l'instant, je me suis dépanné avec

Code : Tout sélectionner

sleep(10000)
send("{ENTER}")
Cela marche, sauf effectivement si une fenêtre intempestive prend la main (fenêtre windows démarrage sélectif par exemple...).
Comme il s'agit simplement de redémarrer une appli en cas d'arrêt intempestif, la tempo ne me dérange pas, mais c'est vrai que ce n'est pas propre...
A+
Merci
Thierry
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

Re: Besoin basic, autoit n'est il pas surdimmensionné...

#6

Message par tolf »

ted69000 a écrit :[..]
Voilà pour la balise...
Vous n'avez sans doute pas compris comment éditer le titre du sujet, en tant que nouveau membre. Voici comment faire :
  • Cliquez sur "éditer" en-dessous de votre premier message.
  • La page d'édition du message s'affiche : changez le titre du sujet.
  • Cliquez sur envoyer, le titre est modifié.
ted69000 a écrit :C'est ma première intervention sur ce forum !
Inutile de vous énerver :D . De plus, ce n'est pas parce que vous êtes nouveau que vous ne devez pas vous conformer au règles.
ted69000 a écrit :Ensuite, un peu d'indulgence svp...
Si je n'étais pas indulgent, je n'aurais pas pris la peine de vous donner les indications ci-dessus et ce sujet serait déjà à la poubelle :P
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
ted69000
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 19 févr. 2009 17:37
Status : Hors ligne

Re: Besoin basic, autoit n'est il pas surdimmensionné...

#7

Message par ted69000 »

Inutile de vous énerver :D . De plus, ce n'est pas parce que vous êtes nouveau que vous ne devez pas vous conformer au règles.

Aaah ! alors là, si je peux me permettre, ...au règles, ça prend un x ! :wink:
Blague mise à part, vous avez entièrement raison !

A+
Thierry
Avatar du membre
FernandG
Membre émérite
Membre émérite
Messages : 194
Enregistré le : mar. 15 avr. 2008 21:50
Localisation : Picardie
Status : Hors ligne

Re: Besoin basic, autoit n'est il pas surdimmensionné...

#8

Message par FernandG »

Bonsoir,
Blague mise à part, vous avez entièrement raison !
Oui, tolf a raison et comme tu en es conscient, édite ton premier message afin de modifier le sujet et d'y mettre un [..] ou [R] suivant ton appréciation quant à ta demande. Relis son dernier message, il ne peut pas être plus explicite.

Maintenant :
Au3Info.exe te permet uniquement de récolter les informations dont tu auras besoin pour construire ton script, ton programme. A lancer donc au moment de la conception, de l'écriture de ton code. Par conséquent, oui tu devras le lancer sur le poste où tu souhaites auditer le logiciel en question. Mais comme tu as l'air un peu perdu, je te recommande la lecture de cette article en cliquant ici.
L'appli dans laquelle je dois cliquer est un développement Windev.
Le nom de l'appli contient le nom, + une partie variable entre parenthèses inscrivant l'environnement réseau.
Parfait c'est justement ce nom suivi du reste que tu dois mettre dans la variable titre de ton code. Oui, le nom de ton appli suffit car par défaut le WinTitleMatchMode gère cette possibilité. Consulte la documentation sur cette option. Mais bon là, si tu débutes, je vais te noyer. Prends le titre à l'aide de au3info.exe et cela devrait fonctionner.

Dans mon exemple :

Code : Tout sélectionner

ControlClick($titre, "Du texte présent dans la fenêtre", "Button2")
oui le "Texte présent dans la fenêtre" peut être uniquement la première phrase ou rien du tout dans ce cas tu auras :

Code : Tout sélectionner

ControlClick ($titre, "", "Button2")
Le souci doit être le ID du bouton (le numéro). J'ai mis 2 comme exemple mais pour avoir le bon ID, utilise au3info.exe et survole le bouton avec la souris pour voir apparaître l'ID.

Effectivement, la commande ControlClick comporte d'autres "options", mais sont optionnelles. Celles que je t'ai indiquées sont les 3 nécessaires pour que la commande puisse "fonctionner".
Ensuite, comme on fait appelle trois fois à la variable $titre
Je ne vois pas ce que tu veux dire ...

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

Re: [..] Besoin basic, autoit n'est il pas surdimmensionné...

#9

Message par Tlem »

Nous allons donc être indulgent pour cette première fois.
J'ai mis moi même la balise de titre sur le premier message.
Nous verrons lorsque votre sujet sera résolu si vous savez modifier la balise [..] par [R] ou lorsque vous créerez un nouveau sujet, si vous avez retenu les indications qui vous ont été données.
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