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

Code : Tout sélectionner

  Select WaitWindowEvent() 
mets ça

Code : Tout sélectionner

  Select WindowEvent() 
:wink:

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 :D )

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... :roll: ...on pourrait faire autrement avec une procedure et l'API avec un timer (SetTimer_())...mais je sais pas si tu connais! :wink:

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! :wink: