[..] Planificateur

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
artefacus
Niveau 2
Niveau 2
Messages : 16
Enregistré le : lun. 02 févr. 2009 15:26
Status : Hors ligne

[..] Planificateur

#1

Message par artefacus »

Bonjour,

Alors j'ai lu pas mal de sujets traitant le domaine sur le forum, mais ces derniers ne répondent pas vraiment à mes attentes.
Alors voilà je cherche à faire un script qui va s'exécuter toutes les heures à :

12:59:40, puis 13:59:40, puis 14:59:40, ça toutes les heures à partir du moment ou il sera exécuter (12:22:16), si en plus je px intégrer une plage horaire d'inactivité ça serait top entre 01:02:00 et 06:58:00 par exemple, ça dans le cas ou la machine fonctionne toute la nuit, sinon je relancerai le script lorsque la machine sera allumée

voilà, merci de votre aide
++
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Planificateur

#2

Message par Tlem »

J'ai pas testé à fond, mais ça devrais le faire :
► Afficher le texteCode
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é".
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Planificateur

#3

Message par jbnh »

J'ai vite fais ceci avant les cours, je sais pas si ca marche et ca remplit que la première condition mais voila ^^

Code : Tout sélectionner

 #Include <date.au3>
 

While 1
If _NowTime() = "12:59:40" Then
$cmd = 1
exitloop
Endif
wend


while 1
    if $cmd = 1 Then
        $begin &= TimerInit()
        
        ; ACTIONS
        
    $cmd = 0
    EndIf
    
    $Dif &= Int(TimerDiff($begin)/1000)
    If $Dif >= 3600 Then 
    $cmd = 1
    Endif
    
wend
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
artefacus
Niveau 2
Niveau 2
Messages : 16
Enregistré le : lun. 02 févr. 2009 15:26
Status : Hors ligne

Re: [..] Planificateur

#4

Message par artefacus »

Merci beaucoup, j'vais regarder vos 2 propositions début d'aprem et voir laquelle est la plus pratique à mettre en place et correspond à mes besoins, je reposterai pour vous tenir au courant

merci de votre temps
++
artefacus
Niveau 2
Niveau 2
Messages : 16
Enregistré le : lun. 02 févr. 2009 15:26
Status : Hors ligne

Re: [..] Planificateur

#5

Message par artefacus »

Alors !!! :)

bon j'ai essayé ta version jbnh

Code : Tout sélectionner

#Include <Date.au3>
While 1
    If _NowTime() = "11:11:00" Then
        $cmd = 1
        ExitLoop
    EndIf
WEnd
While 1
    If $cmd = 1 Then
        $begin &= TimerInit()
        ; Actions à réaliser
        
        ; Click 1
        MouseClick("left", 820, 770, 1, 1)
        ; 40 seconds
        Sleep(40000)
        ; Click 2
        MouseClick("left", 920, 770, 1, 1)
        $cmd = 0
    EndIf
    $Dif &= Int(TimerDiff($begin)/1000)
    If $Dif >= 3600 Then
        $cmd = 1
    EndIf
WEnd
 
mais j'ai le msg d'erreur suivant :
line 10 ........
$begin &= TimerInit()
^ ERROR

Error: variable used without being declared

mes connaissances actuelles, ne me permettent pas de débuger ta versions :S
donc je ne px pas encore la tester....

---------------------------

J'ai aussi essayé ta version Tlem, heureusement que tu avais mis un btn ESC pour arrêter le script :)

Code : Tout sélectionner

#include <Date.au3>
; Appuyer sur ESC pour arrêter le Script
HotKeySet("{ESC}", "Fin")
; Heures de lancement du Script
Dim $aHGo[3] = ['11:08:00', '13:59:40', '14:59:40']
; Plage horraire de mise en veille du Script
Dim $aHPause[2] = ['0:01:59', '06:58:00']
While 1
    $NowTicks = _GetTimeTicks(_NowTime(5))
    If $NowTicks > _GetTimeTicks($aHPause[0]) And $NowTicks < _GetTimeTicks($aHPause[1]) Then
        Sleep(50)
    Else
        If _TestArrayTime($aHGo) Then MsgBox(0,"","Action")
            ; Actions à réaliser
            
            ; Click 1
            MouseClick("left", 820, 770, 1, 1)
            ; 40 seconds
            Sleep(40000)
            ; Click 2
            MouseClick("left", 920, 770, 1, 1)
    EndIf
WEnd
Func _GetTimeTicks($Time)
    Local $Var
    $Var = StringSplit($Time, ':')
    Return _TimeToTicks($Var[1],$Var[2],$Var[3])/1000
EndFunc
Func _TestArrayTime($aTime)
    For $i = 1 to Ubound($aTime)-1
        If _NowTime(5) = $aTime[$i] Then Return 1
    Next
EndFunc
Func Fin()
    Exit
EndFunc
 

Donc là, j'ai bien l'impression d'avoir une boucle infinie..........

Alors, j'vais continuer à chercher, mais pour être plus précis il me semble qu'il me faudrait un truc du genre :

$each_hours = tous les chiffres entiers de 0 à 23 inclus
pour mettre
'$each_hours:59:40'


et que le script s'exécute à chaque fois que ça colle avec une réponse (vu que je ne sais pas exactement à quel moment de la journée le script sera lancer), alors es-ce qu'il faut tester toutes les secondes et là les ressources de la machine vont en prendre un coup....

ou

$time_begin = l'heure en court (s'il est 12:32:26, ben que ça prenne le 12)
pour mettre
'$time_begin:59:40'


et après simplement mettre

; 1h
Sleep(3600000)

dans mes actions .................. bien que je pense mettre des clics aléatoires avec des périodes variables .............

ou encore qu'au lieu du sleep, la dernière action remet $time_begin à jour ........

Merci
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Planificateur

#6

Message par ani »

bonjour artefacus

Error: variable used without being declared
signigie : erreur: la variable utilisé ,n'est pas déclaré
il vous faut donc la rajouter, au début du script ajouter dim $begin ou global $begin

Dim $bégin, $cmd
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Planificateur

#7

Message par Tlem »

Heuuu, je comprend pas tout là !!!

Le script que je vous ais donné, effectue bien la ligne Action sur les heures déterminées, et en dehors de la plage pendant laquelle rien ne doit ce passé ?
Non ?
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