Page 1 sur 1

[..] Planificateur

Posté : mar. 03 févr. 2009 01:19
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
++

Re: [..] Planificateur

Posté : mar. 03 févr. 2009 08:47
par Tlem
J'ai pas testé à fond, mais ça devrais le faire :
► Afficher le texteCode

Re: [..] Planificateur

Posté : mar. 03 févr. 2009 09:21
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

Re: [..] Planificateur

Posté : mar. 03 févr. 2009 10:15
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
++

Re: [..] Planificateur

Posté : mar. 03 févr. 2009 12:04
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

Re: [..] Planificateur

Posté : mar. 03 févr. 2009 15:13
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

Re: [..] Planificateur

Posté : mar. 03 févr. 2009 23:54
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 ?