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.
[R] Détecter l'activité d'une fenêtre
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- Tlem
- 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
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.
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é".
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é".
Re: [..] Détecter l'activité d'une fenêtre
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.
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.
Re: [..] Détecter l'activité d'une fenêtre
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 :
en espérant t'avoir aidé.
fred
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
fred
Re: [..] Détecter l'activité d'une fenêtre
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.
Mais merci beaucoup pour ton idée, ça pourra toujours servir pour autre chose.
- Tlem
- 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
Essayez de voir avec :Si une inactivité prolongée peut être détectée, pour pouvoir agir en conséquence.
Code : Tout sélectionner
MemGetStats ( )
; ou
_ProcessGetPriority ()
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é".
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é".
Re: [..] Détecter l'activité d'une fenêtre
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) :
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
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)
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
