choisir l'heure d'exécution de mon sous programme

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

choisir l'heure d'exécution de mon sous programme

Message 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é??
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Re: choisir l'heure d'exécution de mon sous programme

Message 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.
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

Message 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 
RV
Messages : 209
Inscription : sam. 18/nov./2006 15:16

Message par RV »

Salut David,

A la place de ça

Code : Tout sélectionner

  Select WaitWindowEvent() 
mets ça

Code : Tout sélectionner

  Select WindowEvent() 
:wink:
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

Message 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
RV
Messages : 209
Inscription : sam. 18/nov./2006 15:16

Message 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:
Répondre