[R] Execution planifiée jours de la semaine/plage horaire

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

[R] Execution planifiée jours de la semaine/plage horaire

#1

Message par Julien »

Bonsoir,

Je suis en train de faire un petit script qui doit tournée du lundi au vendredi de 07h10 à 17h30 afin d'actualiser l'affichage dans un logiciel. Dans cette plage horaire je dois exécuter une action (une seule fois dans la journée) puis une action toutes les 2 minutes et une autre toutes les 40 minutes.

J'ai écrit un bout de code qui me parait bien mais j'aimerais avoir votre avis.

Le voici :
► Afficher le texteCode
Edit : petites modifications
Edit : Correction des "sleep"

D'avance merci.
Modifié en dernier par Julien le mer. 10 juin 2009 17:41, modifié 3 fois.
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#2

Message par Yogui »

Franchement pour un script qui doit se lancer tout les jours hors week end j'utilise la commande DOS AT pour le lancer
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#3

Message par Julien »

Je ne peux tester que pendant la journée et j'ai essayé la commande AT mais elle ne fonctionne pas. (chez moi oui pour mes backups)

Je n'ai pas accès à la configuration des postes.

En revanche je sais qu'en utilisateur j'ai bien le retour des dates et heures, d'où ce script.


Sinon pensez vous que cela réponde à mon besoin ? trop lourd ? trop gourmand ? n'importe quoi ?


Merci
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#4

Message par Yogui »

Comme ça je ne suis pas certain que les sleeps soit correcte 1 seconde = sleep(1000) donc 1 minutes sleep(60000)
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#5

Message par Julien »

J'ai corrigé. merci.

Si vous avez d'autres commentaires je suis toujours "preneur" !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#6

Message par Tlem »

En essayant d'être le plus complet possible, voici une autre solution.
Il vous faudra récupérer l'UDF _Adlib.au3 disponible ici.
► Afficher le texte
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é".
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#7

Message par Julien »

Bonsoir,

Merci pour toutes ces informations.

J'ai pu essayé ce script aujourd'hui, j'ai corrigé quelques erreurs mais je trouve que les timing d'exécution ne sont pas respectés.

Pour utiliser les fonctions _AdlibEnable("Action40Mn", 40000) il faut bien mettre en millisecondes ?

Pour 40 minutes il faudrait pas mettre 2400000 ? et pour 2 minutes, 120000 ?

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

Re: [...] Execution planifiée jours de la semaine/plage horaire

#8

Message par Tlem »

Arf, le piège de débutant. :oops:
J'étais trop concentré sur votre sujet et un autre, que je n'ai pas réfléchit correctement.

Mais effectivement c'est bien des millisecondes qu'il faut mettre et donc les valeurs que vous donnez sont exactes.
Désolé. :mrgreen:
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é".
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#9

Message par Julien »

Pas de problème, ça m'a obligé à chercher comment ça fonctionne avant de faire bêtement un copier/coller ! c'est très bien.

Une autre petite chose, il manque les () à _NowTime() sinon erreur lors de la compilation.

Je test tout ça aujourd'hui.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#10

Message par Tlem »

J'ai édité le code pour corriger les erreurs.
Il devrait pouvoir fonctionner tel quel. ;)
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é".
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#11

Message par Julien »

ok, il est lancé.

je vais tester.
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#12

Message par Julien »

alors,

j'ai l'impression qu'il n'incrémenta pas ma variable $nbC pour l'action unique en début de journée.
du coup il tourne en boucle sur la première étape mais il ne va pas plus loin.

je n'arrive pas non plus à incrémenter les lignes dans le fichier de log, d'ailleurs une petite erreur en début de code : $LogFile = FileOpen("Log.log", 1)

j'ai rajouté FileOpen

une idée ?
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#13

Message par Julien »

J'ai apporté une petite modification en n'initialisant pas $nbC

global $nbC

avec des msgbox je constate que l'état change bien de vide à 1, par contre les actions 2 minutes et 40 minutes ne semble pas s'exécuter.

j'ai l'impression que les deux actions ne sont pas lues. Ça répète juste la première boucle.
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#14

Message par Julien »

Nouveau test.

Bon en fait le début fonctionne correctement. à priori.

Et les deux actions (02 & 40 minutes) sont bien lancées, mais l'une derrière l'autre en continue. Extrait du fichier de Log :
Début de process le 13/05/2009 à 13:38:10
Taskkill le 13/05/2009 à 13:38:10
Run SC le 13/05/2009 à 13:38:12
Ouverture file d'attente le 13/05/2009 à 13:39:12
Run Action02Mn le 13/05/2009 à 13:39:18
Run Action40Mn le 13/05/2009 à 13:39:18
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:18
Run Action02Mn le 13/05/2009 à 13:39:18
Run Action40Mn le 13/05/2009 à 13:39:18
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:19
Run Action02Mn le 13/05/2009 à 13:39:19
Run Action40Mn le 13/05/2009 à 13:39:19
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:19
Run Action02Mn le 13/05/2009 à 13:39:19
Run Action40Mn le 13/05/2009 à 13:39:19
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:19
Run Action02Mn le 13/05/2009 à 13:39:19
Run Action40Mn le 13/05/2009 à 13:39:19
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:19
Run Action02Mn le 13/05/2009 à 13:39:19
Run Action40Mn le 13/05/2009 à 13:39:19
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:20
Run Action02Mn le 13/05/2009 à 13:39:20
Run Action40Mn le 13/05/2009 à 13:39:20
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:20
Run Action02Mn le 13/05/2009 à 13:39:20
Run Action40Mn le 13/05/2009 à 13:39:20
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:20
Run Action02Mn le 13/05/2009 à 13:39:20
Run Action40Mn le 13/05/2009 à 13:39:20
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:20
Run Action02Mn le 13/05/2009 à 13:39:20
Run Action40Mn le 13/05/2009 à 13:39:20
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:21
Run Action02Mn le 13/05/2009 à 13:39:21
Run Action40Mn le 13/05/2009 à 13:39:21
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:21
Run Action02Mn le 13/05/2009 à 13:39:21
Run Action40Mn le 13/05/2009 à 13:39:21
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:21
Run Action02Mn le 13/05/2009 à 13:39:21
Run Action40Mn le 13/05/2009 à 13:39:21
L'action 1036 n'à pas pu être exécutée le 13/05/2009 à 13:39:21
Run Action02Mn le 13/05/2009 à 13:39:21
Run Action40Mn le 13/05/2009 à 13:39:21
J'ai bien récupéré le _Adlib.au3 et placé dans le même dossier pour la compilation. pas d'erreur signalé par autoit.

J'ai quand même l'impression qu'il ne fait que passer sur les ligne :
FileWriteLine($LogFile, "Run Action02Mn le " & _NowDate() & " à " & _NowTime() & @CRLF) ; Fichier LOG
_AdlibEnable("Action02Mn", 120000) ; Action d'exécution toute les 02 mn

FileWriteLine($LogFile, "Run Action40Mn le " & _NowDate() & " à " & _NowTime() & @CRLF) ; Fichier LOG
_AdlibEnable("Action40Mn", 2400000) ; Action d'exécution toute les 40 mn
parce qu'il ne m'active pas la fenêtre indiqué dans la fonction Action02Mn/Action40Mn

Auriez-vous une idée ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#15

Message par Tlem »

Oui, je sais pourquoi, encore une fois, précipitation et réflexion ne font pas bon ménages.
C'est lié aux deux _AdlibEnable qui sont activé à chaque fois dans la boucle.

Je regarde ça se soir et j'essaie de faire quelque chose d'un peut plus réfléchit. ;)
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é".
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#16

Message par Julien »

C'est sympa que tu prennes de ton temps ! je vois que tu es toujours hyper actif sur ce forum.

Pour info et parce que je devais faire tourner quelque chose aujourd'hui j'ai utilisé un combiné de mon premier jet et ton premier script.

Ça tourne mais c'est pas très optimisé et j'ai encore quelques améliorations à apporter.

Ceci dit ton code est beaucoup plus clair que le mien donc si tu corrige (au moins pour voir comment ça fonctionne parce que j'y ai passé un bon moment cet après-midi sans trouver de solution) je suis intéressé.

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

Re: [...] Execution planifiée jours de la semaine/plage horaire

#17

Message par Tlem »

Bon, avec un peut de temps et quelques tests, voici pour moi le script final ;) :
► Afficher le texteWeek Timer
Si les actions ne sont pas exécutées, il se peut qu'il y ait un problème sur la fonction MonProgActif(). Il faut que cette fonction renvoie 1 pour que les autres fonctions puissent être exécutées car si votre appli n'est pas active, je suppose que le timer n'a pas d'intérêt.
J'ai modifié légèrement la fonction au cas ou ...

En ce qui concerne l'écriture du fichier de log, je n'ai eu aucun problèmes.
Il est inutile d'utiliser le FileOpen car le FileWriteLine sait gérer l'ouverture et la fermeture du fichier tout seul.

Voilà, à vous de me dire si ça fonctionne comme vous le désirez. ;)

Edit : J'ai mis à jour l'UDF _Adlib.au3 pour résoudre un problème de déclaration de variable (rien de méchant).
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é".
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#18

Message par Julien »

Du premier coup !

Une petite remarque, mon clavier/souris sont bien verrouillés pendant l'exécution mais la touche ECHAP ne réagi pas. Je dois fermer ma session pour retrouver le contrôle. En fait quand je fais ECHAP je voudrais pas l'arrêter mais retrouver le contrôle de la souris/clavier et si je une autre combinaison je re-bloque. je vais me pencher la dessus.

Je vais le tester sur une journée. Pour infos ma version d'hier que j'ai laissé tourner toute la nuit ma générée un fichier de log de 12.5Go :lol: qui ma planté mon poste.

J'ai un wamp (serveur LAMP) installé sur ce poste et je me disait que je devrais peux être enregistrer les log dedans. je vais regarder comment ça fonctionne avec autoit et si c'est possible.

Sinon merci encore pour cette aide précieuse !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#19

Message par Tlem »

BlocInput bloque clavier et souris, donc aucune touche ne peut être gérée.
La seule solution :
Remarks

If BlockInput is enabled, the Alt keypress cannot be sent!
The table below shows how BlockInput behavior depends on the Windows version; however, pressing Ctrl+Alt+Del on any platform will re-enable input due to a Windows API feature.
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é".
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [...] Execution planifiée jours de la semaine/plage horaire

#20

Message par Julien »

Ha ben voila! tout s'explique, j'avais pas connaissance de cela.

Merci pour ta précieuse aide.
Répondre