[R] Vérifier le temps d'execution d'un script

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
johnfive
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mer. 06 mai 2009 10:57
Status : Hors ligne

[R] Vérifier le temps d'execution d'un script

#1

Message par johnfive »

Bonjour,

je souhaiterais vérifier le temps d'exécution d'un script.
Par exemple, j'ai un script qui installe automatiquement une application, et je souhaiterais, en parallèle pouvoir déclencher un script (par exemple un message box) si mon installation venait à s'éterniser. C'est à dire si ca fait plus de 5 min que mon script a été exécuté et qu'il devrait avoir fini depuis longtemps, j'ai un retour du problème.

Merci.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: Verifié le temps d'execution d'un script

#2

Message par Iste »

Ben, pour ca le plus simple est de nomer le script compilé avec un nom bien distinctif (donc autre que setup.exe etc.)

Enssuite, tu lance un autre .exe (le lancement peut tres bien se faire dans le 1er script)
avec dedant un truc du genre

Code : Tout sélectionner

ProcessWait ("monsuperprogramme.exe") ; attendre que monsuperprogramme.exe se lance
Sleep (1000*60*5) ; dodo 5min
If ProcessExists ("monsuperprogramme.exe") Then ProcessClose ("monsuperprogramme.exe")
Edit : Tu doit aussi pouvoir tout faire dans ton propre script, si la peur est juste qu'il tourne en rond, et pas qu'il plante.
pour ca un TimerInit() au début, puis peut etre un AdlibEnable() avec un TimerDiff() et une condition pour tout stoper
Signez ici
johnfive
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mer. 06 mai 2009 10:57
Status : Hors ligne

Re: Verifié le temps d'execution d'un script

#3

Message par johnfive »

Merci beaucoup pour ta réponse !!

C'est exactement ce que je voulais !!

Merci !
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: Verifié le temps d'execution d'un script

#4

Message par Iste »

Mais de rien !
Par contre je te conseil vivement la 2em solution si tu a plusieur instal (ca evitera que l'une ferme l'autre)
et egalement de lire ce post sur la presentation des messages
Signez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Verifié le temps d'execution d'un script

#5

Message par Tlem »

@johnfive
Merci de prendre le temps de lire les règles de présentation d'un message.

En ce qui concerne votre problème, pour ma part je ferait une simple fonction dans mon script qui serait appelée par un AdlibEnable et qui vérifierait la durée d'exécution du script lui même.
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é".
johnfive
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mer. 06 mai 2009 10:57
Status : Hors ligne

Re: [R] Vérifier le temps d'execution d'un script

#6

Message par johnfive »

Oui, je viens d'ailleurs de regarder AdlibEnable dans la doc.
Si j'ai bien compris le principe, AdlibEnable exécute une fonction tous les temps "t" (250ms par défaut)

Code : Tout sélectionner

AdlibEnable("myadlib")
;...
Exit

Func myadlib()
    If WinActive("Error") Then
        ;...
    EndIf
EndFunc
 
Mais par exemple, si je veux vérifier que mon script de téléchargement (via InetGet) n'est pas coincé, comment faire ?

Autre chose, si je met un sleep dans la fonction myadlib(), par exemple :

Code : Tout sélectionner

AdlibEnable("myadlib")
;...
Exit

Func myadlib()
    sleep(5000)
    If WinActive("Error") Then
        ;...
    EndIf
EndFunc
 
Est-ce que cela va bloquer mon script ?
Autrement dit : Est-ce que la fonction myadlib() est exécuté en parallèle de mon script ?
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [R] Vérifier le temps d'execution d'un script

#7

Message par Iste »

Pour le sleep, je suis pas bien sur, mais je crois bien qu'il bloque le rest (a confirmer)

sinon, la fonction InetGet() va de paire avec les macro @InetGetActive et @InetGetBytesRead.

Je serais toi, je lancerais la fonction en parralelle tout les 10 seconde (ca me semble raisonable) et si @InetGetBytesRead n'a pas changé, c'est qu'il y a un bug !

edit code :

Code : Tout sélectionner

Global $byteDL = "NULL"
AdlibEnable("myadlib",10*1000)
;...
Exit

Func myadlib()
    If $byteDL <> @InetGetBytesRead Then
        $byteDL = @InetGetBytesRead
    Else
        MsgBox("","","BUUUUUUG !!!")
    EndIf
EndFunc
Signez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Vérifier le temps d'execution d'un script

#8

Message par Tlem »

La question du multitache avec AutoIt à déjà été abordée de nombreuses fois.
Mais pour la Xième fois, oui une pause prolongée dans le processus du script bloque l'exécution de AdlibEnable, et une pause dans une fonction appelée par AdlibEnable bloque le reste du script.
A vous de concevoir intelligemment vos fonctions pour qu'elles ne soient pas bloquantes.

Code : Tout sélectionner

AdlibEnable("myadlib", 5000)
;...
Exit

Func myadlib()
    If WinActive("Error") Then
        ;...
    EndIf
EndFunc
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