Page 1 sur 1
choisir l'heure d'exécution de mon sous programme
Publié : lun. 15/oct./2007 14:30
par david
je veux que mon programme affiche un message a l'heure demandée alors dans ma boucle j'ai mis:
Code : Tout sélectionner
Time$ = FormatDate("%hh:%ii", Date())
If Time$="15:22" : MessageRequester("TESTEUR", "Heure ok: "+Time$, 0):EndIf
mon message n'apparait pas à l'heure demandé
qu'est-ce que j'ai oublié??
Re: choisir l'heure d'exécution de mon sous programme
Publié : lun. 15/oct./2007 14:33
par Le psychopathe
david a écrit :je veux que mon programme affiche un message a l'heure demandée alors dans ma boucle j'ai mis:
Code : Tout sélectionner
Time$ = FormatDate("%hh:%ii", Date())
If Time$="15:22" : MessageRequester("TESTEUR", "Heure ok: "+Time$, 0):EndIf
mon message n'apparait pas à l'heure demandé
qu'est-ce que j'ai oublié??
De mettre tout ça dans une boucle car la ton programme se coupe tout seul.
Publié : lun. 15/oct./2007 14:45
par david
le probleme ne vient pas de la mais du fait que la fenetre est invisible??
quand je passe le curseur sur l'icone une fois l'hure passée ça marche
mais moi j'aurais voulu que ça soit autonome...
ou mettre mes deux lignes dans ma boucle ou quoi modifier??
Code : Tout sélectionner
FicIcon$="Icone.ico"
If OpenWindow(0, 0, 0, 0, 0, "blabla",#PB_Window_Invisible)
CreatePopupMenu(1)
MenuItem(1,"Paramètres")
MenuItem(2,"A propos")
MenuItem(3,"Quitter")
AddSysTrayIcon(0, WindowID(0), LoadImage(0, FicIcon$))
EndIf
Repeat
Time$ = FormatDate("%hh:%ii", Date())
If Time$="15:41" : MessageRequester("TESTEUR", "Heure ok: "+Time$, 0):End:EndIf
Select WaitWindowEvent()
Case #PB_Event_SysTray
DisplayPopupMenu(1, WindowID(0))
Case #PB_Event_Menu
Select EventMenu()
Case 1 ; Paramètres
MessageRequester("Paramètres...","")
Case 2 ; A propos
MessageRequester("A propos de...","")
Case 3 ; Quitter
quit=1
EndSelect
EndSelect
Until quit=1
End
Publié : lun. 15/oct./2007 15:09
par RV
Salut David,
A la place de ça
mets ça

Publié : lun. 15/oct./2007 18:18
par david
ben oui la ca marche (et en plus j'ai compris qu'il ne faillait pas attendre l'évenement...)
par contre avec la modification ci-dessous mon appel a l'heure XXYY:ZZ
se fait normalement mais je n'arrive pas a refaire ma boucle (pour que l'action seréalise le lendemain et le surlendemain... a la meme heure
j'ai bien essayé avec GOSUB et RETURN qui me semblaient mieux appropriés mais une fois l'heure passé et l'action 'suite' effectuée
mon 'menu' n'apparait plus quand je clic sur l'icone du programme...???!!
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 0, 0, "blabla",#PB_Window_Invisible)
CreatePopupMenu(1)
MenuItem(1,"Paramètres")
MenuItem(2,"A propos")
MenuItem(3,"Quitter")
AddSysTrayIcon(0, WindowID(0), LoadImage(0, FicIcon$))
EndIf
boucle:
Repeat
Time$ = FormatDate("%hh:%ii:%ss", Date())
If Time$=heuremisej$ : Goto suite:EndIf
Select WindowEvent()
Case #PB_Event_SysTray
DisplayPopupMenu(1, WindowID(0))
Case #PB_Event_Menu
Select EventMenu()
Case 1 ; Paramètres
MessageRequester("Paramètres...","")
Case 2 ; A propos
MessageRequester("A propos de...","")
Case 3 ; Quitter
quit=1
EndSelect
EndSelect
Until quit=1
suite:
;fait mes actions....
Delay(70000):Goto boucle
End
Publié : lun. 15/oct./2007 20:30
par RV
Tu te compliques!
Là, le déclenchement se fera tous les jours jusqu'à faire 'Quitter' (ou éteindre l'ordi

)
Code : Tout sélectionner
FicIcon$="icone.ico"
If OpenWindow(0, 0, 0, 0, 0, "blabla",#PB_Window_Invisible)
CreatePopupMenu(1)
MenuItem(1,"Paramètres")
MenuItem(2,"A propos")
MenuItem(3,"Quitter")
AddSysTrayIcon(0, WindowID(0), LoadImage(0, FicIcon$))
EndIf
Repeat
Time$ = FormatDate("%hh:%ii", Date())
If Time$="20:57"
MessageRequester("TESTEUR", "Heure ok: "+Time$, 0)
Delay(60000) ;bloque pendant une minute le prog
EndIf
Select WaitWindowEvent(60000) ;dans ce cas le prog se déclenchera entre 21:25:00 et 21:25:59
Case #PB_Event_SysTray
DisplayPopupMenu(1, WindowID(0))
Case #PB_Event_Menu
Select EventMenu()
Case 1 ; Paramètres
MessageRequester("Paramètres...","")
Case 2 ; A propos
MessageRequester("A propos de...","")
Case 3 ; Quitter
quit=1
EndSelect
EndSelect
Until quit=1
End
Dans ce cas, au moment du déclenchement ton icone n'est pas accessible pendant une minute (Delay(60000))!
Y aurait plus simple...heu...

...on pourrait faire autrement avec une procedure et l'API avec un timer (SetTimer_())...mais je sais pas si tu connais!
PS: j'ai re-remplacé le EventWindow() par un WaitWindowEvent(60000) pour éviter que ton prog ne prenne du temps process en continu mais une fois toutes les minutes!
