[R] Détecter l'activité d'une fenêtre

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
x0r
Niveau 2
Niveau 2
Messages : 23
Enregistré le : jeu. 17 avr. 2008 16:57
Status : Hors ligne

[R] Détecter l'activité d'une fenêtre

#1

Message par x0r »

Bonjour à toutes et à tous,

Voilà, je suis actuellement sur un script qui automatise la gestion de données utilisateurs sur des MFP; ce script est donc juste la pour automatiser une tâche que le logiciel de supervision gère.
Au départ mon script lance le logiciel de supervision des MFP, renseigne le login et le pass, puis attend 1min30 que le logiciel ai finit de "rafraichir" les machines.

Mon problème est le suivant :

Comme je l'ai dis, au lancement de ce programme, il rafraichit toutes les machines ( qui sont au nombre de 24 pour le moment mais à l'avenir elles seront plus nombreuses encore ), et ce "rafraichissement" prend un certain temps.
Pour le moment, j'ai donc effectué un sleep (90000); alors ça fonctionne naturellement puisque ça correspond effectivement au temps de rafraichissement des 24 machines, mais n'y aurai-t-il pas un moyen pour dire à AutoIt d'attendre que la fenêtre active cesse son activité ?

Idée annexe :

Plus tôt dans mon programme, je demande à l'utilisateur (qui ne sera autre qu'un informaticien), de renseigner le nombre exacte de MFP déployé. J'ai donc pensé à faire un temps de rafraichissement pour UNE machine, puis à multiplier par le nombre entré par l'utilisateur.

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

Re: [..] Détecter l'activité d'une fenêtre

#2

Message par Tlem »

Qu'est-ce que MFP ?

La fenêtre du programme de supervision se ferme elle dés qu'elle à finit son rafraîchissement ?
Si c'est non, y à il dans cette fenêtre une zone qui renseigne l'état d'avancement du rafraîchissement ?

Le but, serait d'avoir un point de repère quelconque sur cette fenêtre de supervision (Ou encore de surveiller sa consommation de ressource) pour savoir lorsqu'elle à finit de faire le rafraîchissement, et permettre de continuer le script.
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é".
x0r
Niveau 2
Niveau 2
Messages : 23
Enregistré le : jeu. 17 avr. 2008 16:57
Status : Hors ligne

Re: [..] Détecter l'activité d'une fenêtre

#3

Message par x0r »

MFP pour MultiFunction Peripheral, cela désigne les photocopieurs multifonctions : imprimantes, scanner, fax, etc...

Effectivement, mise à part les ressources consommées par cette application, rien ne renseigne que la fenêtre est en cours de rafraichissement, si ce n'est le sablier.

Une fois le rafraichissement terminé, la fenêtre reste ouverte.
fred
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 11 avr. 2008 15:07
Status : Hors ligne

Re: [..] Détecter l'activité d'une fenêtre

#4

Message par fred »

Bonjour xOr,
il n'y a pas dans la fenetre, un cotrole qui se désactive durant le traitement.?
si oui, tu peux faire une boucle d'attente du type :

Code : Tout sélectionner

While 1
; si le bouton est toujours désactivé alors on attend
If ControlCommand("titre fenetre", "texte du controle", "[idcontrol]", "IsEnabled") = 0 Then
     Sleep(5)  
Else        
;sinon le bouton est activé et on sort de l'attente
      ExitLoop
EndIf
WEnd
 
en espérant t'avoir aidé.
fred
x0r
Niveau 2
Niveau 2
Messages : 23
Enregistré le : jeu. 17 avr. 2008 16:57
Status : Hors ligne

Re: [..] Détecter l'activité d'une fenêtre

#5

Message par x0r »

Malheureusement non, pour te dire, quand le programme recherche les informations sur tous les MFP listés, si on essaie de faire quoi que ce soit dans cette fenêtre, le programme plante ^^'

Mais merci beaucoup pour ton idée, ça pourra toujours servir pour autre chose.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Détecter l'activité d'une fenêtre

#6

Message par Tlem »

Essayez de voir avec :

Code : Tout sélectionner

MemGetStats ( )
; ou
_ProcessGetPriority ()
Si une inactivité prolongée peut être détectée, pour pouvoir agir en conséquence.
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é".
x0r
Niveau 2
Niveau 2
Messages : 23
Enregistré le : jeu. 17 avr. 2008 16:57
Status : Hors ligne

Re: [..] Détecter l'activité d'une fenêtre

#7

Message par x0r »

Merci pour ses suggestions, je crois que pour le moment je vais me contenter de ma 2ème "solution", à savoir : calculer un temps moyen de rafraichissement pour 1 machine, puis dans une variable, multiplier ce temps par le nombre (de machine) renseigné par l'utilisateur.

Ce qui donne à la place de mon vaseux sleep (90000) :

Code : Tout sélectionner

$nb_mfp=InputBox("Nombre de MFP", "Indiquez le nombre exacte de MFP déployés", "", "")
$refresh=3750*$nb_mfp
...
sleep ($refresh)
Certes ce n'est pas une solution extrêmement fiable, mais c'est déjà mieux qu'au début ^^

P.S : je me contente de ma solution, non pas parce-que vos suggestions ne me conviennent pas, mais car je suis un peu en retard sur ce programme et j'ai perdu pas mal de temps sur ce problème ;)
Répondre