Page 1 sur 3

un bip indiquant un message.

Publié : dim. 22/mars/2009 21:27
par chercheacomprendre
bonsoir à tous, je me pose la question, est-il possible de faire un petit utilitaire, m'indiquant par un bip si un message vient dans ma messagerie en purebasic ?.

bonne soirée et merci par avance.

Publié : lun. 23/mars/2009 2:55
par Ollivier
Salut Yves,

Regarde dans l'aide la librairie "Sound".
Il y a trois fonctions essentielles à ton besoin:

Code : Tout sélectionner

InitSound() ; Charge la librairie des sons
LoadSound() ; Charge un fichier son
PlaySound() ; Joue le son
Voilà!

Ollivier

Publié : lun. 23/mars/2009 6:24
par venom
oui mais si il y avait que sa :lol:
après que tu gère sa tu passe a la récupération d'information entre purebasic et le site en php.




@++

Publié : lun. 23/mars/2009 17:06
par chercheacomprendre
oui, je ne sais pas comment faire au niveau de windows XP quel fichier concerné, j'avoue que c'est pas évident...
pourtant il doit y avoir une astuce, en fonction de mon POP ? ou mon IP ?

Je cherche une ébauche de code , car je ne connais pas grand chose à ce niveau .
merci par avance.

YB

Publié : lun. 23/mars/2009 17:31
par cha0s
Il suffit que tu vérifie tout les N minutes si tu a un message.

Publié : lun. 23/mars/2009 21:21
par chercheacomprendre
trés drole, je note ...

Publié : lun. 23/mars/2009 22:23
par Ollivier
Euh... ça n'était pas une blague!

Publié : lun. 23/mars/2009 22:39
par venom
non c'est pas une blague je fait sa pour un forum qui a une fonction nouveau message j'ai une petite fenêtre en bas a droite qui toutes les minutes s'actualise et je vois les nouveaux message poster sur ce dernier :wink:



@++

Publié : lun. 23/mars/2009 23:18
par chercheacomprendre
ah ok, interressant ...
celà pourrait fonctionné alors sur la messagerie mail.?
c'est en purebasic ?
yves.

Publié : mar. 24/mars/2009 6:25
par venom
oui bien sur,

Code : Tout sélectionner

Enumeration
 #window_0
EndEnumeration

Enumeration
 #web_0
EndEnumeration

If OpenWindow(#window_0,0,0,800,600,"SAV-computer News",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
  WebGadget(#web_0, 0, 0,800,700,"http://www.purebasic.fr/french/index.php");<---- ton url

base =  ElapsedMilliseconds() 
  Repeat
  
time = ElapsedMilliseconds() - base
 If( time > 60000);<---------------- delay de rafrauchissement
  SetGadgetText(#web_0, "http://www.sav-computer.com/search.php?search_id=newposts")
   base =  ElapsedMilliseconds()
 EndIf 
    
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget 
      Select EventGadget()
      
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
EndIf 
voilà a toi de modifier la taille et autres options :wink:
par contre sa na bip pas :D





@++

Publié : mar. 24/mars/2009 17:10
par chercheacomprendre
Ok, merci bien, je vais pouvoir travailler un peu dessus, c'est sympa.
yves.

Publié : mer. 25/mars/2009 19:58
par chercheacomprendre
Non, je ne sais pas faire !... trop compliqué pour mouaa...
tant pis, merci quand meme.

Yves.

Publié : mer. 25/mars/2009 23:05
par Atomo
Ce code te permet de récupérer le nombre de messages dans ta boite à MP sur purebasic.fr, il faut cependant se log avec tes logins et pass la premiere fois.

Code : Tout sélectionner

Enumeration
  #Window_0
  #Web_0
EndEnumeration

If OpenWindow(#Window_0, 0, 0, 800, 600, "Messagerie",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(#Window_0))
    WebGadget(#Web_0, 0, 0, 800, 600, "http://www.purebasic.fr/french/privmsg.php?folder=inbox")
    
    Temps.l = ElapsedMilliseconds() ;initialisation temps écoulé
    
    Repeat
      Event = WaitWindowEvent(1)
      If ElapsedMilliseconds()-Temps > 5000 ;attente de 5secondes
        Sources.s = GetGadgetItemText(#Web_0, #PB_Web_HtmlCode) ;récupère le code source de la page html actuelle
        New_Messages.l = CountString(Sources, "title="+Chr(34)+"Message Non-lu")
        Old_Messages.l = CountString(Sources, "title="+Chr(34)+"Message déjà lu")
        Debug "Nouveaux messages="+Str(New_Messages)
        Debug "Anciens messages="+Str(Old_Messages)
        SetGadgetState(#Web_0, #PB_Web_Refresh) ;rafraichit la page
        Temps = ElapsedMilliseconds() ;réinitialisation temps écoulé
      EndIf
    Until Event = #PB_Event_CloseWindow
  EndIf
EndIf
Le fonctionnement est simple, je récupère toutes les 5secondes le code source html de la page, je remarque que les nouveaux messages sont indiqués par la balise : title="Message Non-lu", je compte le nombre de fois où cette phrase apparaît et le tour est joué :)
Le principe reste le même avec d'autres site comme laposte.net par exemple.
Si tu as des questions n'hésite pas.

PS : Je t'envoi un nouveau message privé pour que tu puisse tester la commande.

Publié : jeu. 26/mars/2009 0:08
par venom
je me suis permis d'y ajouté un bip :D

Code : Tout sélectionner

Enumeration
  #Window_0
  #Web_0
EndEnumeration

If OpenWindow(#Window_0, 0, 0, 800, 600, "Messagerie",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(#Window_0))
    WebGadget(#Web_0, 0, 0, 800, 600, "http://www.purebasic.fr/french/privmsg.php?folder=inbox")
   
    Temps.l = ElapsedMilliseconds() ;initialisation temps écoulé
   
    Repeat
      Event = WaitWindowEvent(1)
      If ElapsedMilliseconds()-Temps > 5000 ;attente de 5secondes
        Sources.s = GetGadgetItemText(#Web_0, #PB_Web_HtmlCode) ;récupère le code source de la page html actuelle
        New_Messages.l = CountString(Sources, "title="+Chr(34)+"Message Non-lu")
        Old_Messages.l = CountString(Sources, "title="+Chr(34)+"Message déjà lu")
        Debug "Nouveaux messages="+Str(New_Messages)
        Debug "Anciens messages="+Str(Old_Messages)
        SetGadgetState(#Web_0, #PB_Web_Refresh) ;rafraichit la page
;----------------------------bip----------------------------------------
         If New_Messages.l = 1
          Beep_(1000,1000)
         ElseIf New_Messages.l = 0
         
         EndIf
;----------------------------bip----------------------------------------   
        Temps = ElapsedMilliseconds() ;réinitialisation temps écoulé
      EndIf
    Until Event = #PB_Event_CloseWindow
  EndIf
EndIf




@++

Publié : jeu. 26/mars/2009 17:12
par chercheacomprendre
Ok, merci les amis, je vais essayé celà, c'est tres sympa, je vous tiens au courant de mes essais.

bonne soirée.

Yves.