Code : Tout sélectionner
#include <Date.au3>
#include <GUIConstantsEx.au3>
GuiCreate(" Planification de jl56 ",500, 400)
GUISetState ()
GUICtrlCreateLabel(" Ne fermez pas cette fenetre sinon le programme ne se lancera pas ",20,250)
$posh=30
$posv=250
GUICtrlCreateLabel(" Quel est l'heure de programmation ( format hh:mm) ",20,$posh)
$inppgrheure = GuiCtrlCreateInput("23:50", 20, $posh+20, 150, 18)
$posh=100
GUICtrlCreateLabel(" L'heure actuel est ( format hh:mm) ",20,$posh)
$inpplheureactuel = GuiCtrlCreateInput(_NowTime(4), 20, $posh+20, 150, 18)
;cette variable sert de bascule pour ne pas lancer x fois l'appli à l'heure prévu
$pr=""
$posh=170
GUICtrlCreateLabel(" Programme à executer ",20,$posh)
$programme = GuiCtrlCreateInput("notepad.exe", 20, $posh+20, 300, 18)
$quitter = GUICtrlCreateButton(" Quitter ", 300, 350, 70, 30)
do
$msg = GUIGetMsg()
;si l'heure est identique et que le programme n'a pas été déjà lancé
if GUICtrlRead($inppgrheure)=GUICtrlRead($inpplheureactuel) and $pr="non"Then
;~ MsgBox(0,"la ligne de commande pour exécuter le prog. est",GUICtrlRead($programme))
Run (GUICtrlRead($programme))
$file = FileOpen(@WorkingDir&"\historiqueProgrammation.txt", 0)
; test de l'ouverture du fichier historique
If $file = -1 Then
$file = FileOpen(@WorkingDir&"\historiqueProgrammation.txt", 2)
FileWriteLine($file,"Le "&@mday&" "&@mon&" "&@year&" à "&GUICtrlRead($inpplheureactuel)&" heure programme= "&GUICtrlRead($programme))
FileClose($file)
Else
FileClose($file)
$file = FileOpen(@WorkingDir&"\historiqueProgrammation.txt", 1)
FileWriteLine($file,"Le "&@mday&" "&@mon&" "&@year&" à "&GUICtrlRead($inpplheureactuel)&" heure programme= "&GUICtrlRead($programme))
FileClose($file)
EndIf
$pr="oui"
EndIf
;comparaison de l'heure pour la bascule
;si l'heure est toujours identique et que le programme a été déjà lancé alors on empeche de le relancer sinon au autorise
if GUICtrlRead($inppgrheure)=GUICtrlRead($inpplheureactuel) and $pr="oui" Then
Else
;sinon si l'heure est redevenue différente on autorise à nouveau
$pr="non"
endif
;mise à jour de l'heure actuel
if _NowTime (4)<> $inpplheureactuel Then
GUICtrlSetData ($inpplheureactuel ,_NowTime(4))
EndIf
until $msg = $GUI_EVENT_CLOSE or $msg = $quitter
GUIDelete()
Exit