Ya quoi ce soir ?

Programmation d'applications complexes
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Ya quoi ce soir ?

Message par Flype »

j'en avais marre que ma femme me demande tout le temps ce qu'il y a à la TV alors il y a qq jours je lui ai concocté un petit soft qui vient se loger dans la barre systray... en voici le source.

Code : Tout sélectionner

;/================================================
;/  Objet  :    PROGRAMME TV
;/  Auteur :    Flype - flype@altern.org
;/  Date   :    Février 2005
;/================================================


;/

Structure APP
  
  Name.s
  Url.s
  Width.l
  Height.l
  Wnd.l
  Brush.l
  BgCol.l
  
EndStructure

Global app.APP

app\Name   = "Programme TV"
app\Url    = "http://www.programme-tv.net/tv.php"
app\Width  = 560
app\Height = 500
app\BgCol  = $808080

;/

Enumeration ; Id. Gadget
  
  #gadWeb
  #gadActualiser
  
EndEnumeration
Enumeration ; Id. Statusbar
  
  #sbDate
  #sbUrl
  
EndEnumeration
Enumeration ; Id. Popup Menu
  
  #popActualiser
  #popMontrer
  #popCacher
  #popQuitter
  
EndEnumeration

;/

Procedure.l RunOnce(lpName.s)
  
  #ERROR_ALREADY_EXISTS = 183
  
  If CreateMutex_(#Null,#Null,@lpName) 
    If GetLastError_() = #ERROR_ALREADY_EXISTS
      Handle = FindWindow_(#Null,lpName)
      If Handle
        ShowWindow_(Handle,#True)
        SetForegroundWindow_(Handle)
        End
      EndIf
    EndIf
  EndIf
  
EndProcedure
Procedure.l ExtractIcon()
  
  lpFileName.s = Space(1024)
  
  If GetModuleFileName_(#Null,lpFileName,1024)
    ProcedureReturn ExtractIcon_(GetModuleHandle_(#Null),lpFileName,#Null)
  EndIf
  
EndProcedure
Procedure.l ColorWindow(hwnd.l,crColor.l)
  
  hBrush = CreateSolidBrush_(crColor)
  
  If hBrush
    SetClassLong_(hwnd,#GCL_HBRBACKGROUND,hBrush)
    InvalidateRect_(hwnd,0,1)
    ProcedureReturn hBrush
  EndIf
  
EndProcedure
Procedure.l ShowWindow(hwnd.l,State.l)
  
  If State = -1
    State = #True - IsWindowVisible_(hwnd)
  EndIf
  
  ShowWindow_(hwnd,State)
  
  If State = #True
    SetForegroundWindow_(hwnd)
  EndIf
  
EndProcedure
Procedure.s DateFR()
  
  now.l = Date()
  
  Select DayOfWeek(now)
    
    Case 0 : dd.s = "Dimanche"
    Case 1 : dd.s = "Lundi"
    Case 2 : dd.s = "Mardi"
    Case 3 : dd.s = "Mercredi"
    Case 4 : dd.s = "Jeudi"
    Case 5 : dd.s = "Vendredi"
    Case 6 : dd.s = "Samedi"
    
  EndSelect
  
  Select Month(now)
    
    Case 1  : mm.s = "Janvier"
    Case 2  : mm.s = "Février"
    Case 3  : mm.s = "Mars"
    Case 4  : mm.s = "Avril"
    Case 5  : mm.s = "Mai"
    Case 6  : mm.s = "Juin"
    Case 7  : mm.s = "Juillet"
    Case 8  : mm.s = "Août"
    Case 9  : mm.s = "Septembre"
    Case 10 : mm.s = "Octobre"
    Case 11 : mm.s = "Novembre"
    Case 12 : mm.s = "Décembre"
    
  EndSelect
  
  ProcedureReturn dd+" "+Str(Day(now))+" "+mm+" "+Str(Year(now))+FormatDate(" à %hh:%ii:%ss",now)
  
EndProcedure

Procedure.l Quit()
  
  CloseWindow(0)
  DeleteObject_(app\Brush)
  RemoveSysTrayIcon(0)
  
EndProcedure
Procedure.l Gui()
  
  flags = #PB_Window_ScreenCentered
  flags | #PB_Window_SystemMenu
  flags | #PB_Window_SizeGadget
  flags | #PB_Window_MinimizeGadget
  
  app\Wnd = OpenWindow(0,0,0,app\Width,app\Height,flags,app\Name)
  
  If app\Wnd = #Null
    ProcedureReturn #False
  EndIf
  
  ColorWindow(app\Wnd,app\BgCol)
  
  ;/
  
  If AddSysTrayIcon(0,app\Wnd,ExtractIcon()) = #Null
    ProcedureReturn #False
  EndIf
  
  SysTrayIconToolTip(0,app\Name)
  
  ;/
  
  If CreateStatusBar(0,app\Wnd) = #Null
    ProcedureReturn #False
  EndIf
  
  AddStatusBarField(230)
  AddStatusBarField($FFF)
  StatusBarText(0,#sbUrl,app\Url,#PB_StatusBar_Center)
  StatusBarText(0,#sbDate,DateFR(),#PB_StatusBar_Center)
  
  ;/
  
  If CreatePopupMenu(0) = #Null
    ProcedureReturn #False
  EndIf
  
  MenuItem(#popActualiser, "Actualiser")
  MenuBar() 
  MenuItem(#popMontrer,    "Montrer")
  MenuItem(#popCacher,     "Cacher")
  MenuBar() 
  MenuItem(#popQuitter,    "Quitter")
  
  ;/
  
  If CreateGadgetList(app\Wnd) = #Null
    ProcedureReturn #False
  EndIf
  
  WebGadget(#gadWeb,5,5,0,0,app\Url)
  ButtonGadget(#gadActualiser,4,0,0,22,"Actualiser",#PB_Button_Default)
  
  ;/
  
  If LoadFont(0,"Arial",10,#PB_Font_Bold)
    SetGadgetFont(#gadActualiser,FontID())
  EndIf
  
  ;/
  
  ProcedureReturn #True
  
EndProcedure
Procedure.l Loop()
  
  Repeat
    
    Select WaitWindowEvent()
      
      Case #PB_Event_CloseWindow : ShowWindow(app\Wnd,#False)
        
      Case #PB_Event_SizeWindow
        wndW = WindowWidth()
        wndH = WindowHeight()
        ResizeGadget(#gadWeb,-1,-1,wndW-10,wndH-54)
        ResizeGadget(#gadActualiser,-1,wndH-45,wndW-8,-1)
        
      Case #PB_Event_Gadget
        Select EventGadgetID()
          Case #gadActualiser
            SetGadgetState(#gadWeb,#PB_Web_Refresh)
            StatusBarText(0,#sbDate,DateFR(),#PB_StatusBar_Center)
        EndSelect
        
      Case #PB_Event_Menu
        Select EventMenuID()
          Case #popActualiser : ShowWindow(app\Wnd,#True) : SetGadgetState(0,#PB_Web_Refresh)
          Case #popMontrer    : ShowWindow(app\Wnd,#True)
          Case #popCacher     : ShowWindow(app\Wnd,#False)
          Case #popQuitter    : Quit()
        EndSelect
        
      Case #PB_Event_SysTray
        Select EventType()
          Case #PB_EventType_RightClick : DisplayPopupMenu(0,app\Wnd,DesktopMouseX(),DesktopMouseY())
          Case #PB_EventType_LeftClick  : ShowWindow(app\Wnd,-1)
        EndSelect
        
    EndSelect
    
  ForEver
  
EndProcedure

;/

RunOnce(app\Name)
If Gui()
  Loop()
EndIf
End

;/
par contre si qq connait un flux RSS pour les programmes TV francais ca m'interesse.
Image
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

C'est pas con mais faut que je recherche une page avec le cable.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

ouep mais tu verras c pas facile ou alors y'en a bien, avec pleins de pub pouarkkk.
Image
DominiqueB
Messages : 47
Inscription : sam. 01/mai/2004 14:41

Cool !

Message par DominiqueB »

Salut,
très pratique ton prog !
Attention, il faut obligatoirement le compiler en indiquant une icone à associer à l'exécutable ! Sinon, du moins sous xp pro sp1 le prog n'apparait pas !
Autrement, c'est vrai que c'est dommage qu'il y ait de la pub !

Merci encore.

Dominique
Dominique
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Excellent FLype :D

Nico, si tu trouves une page pour le cable, je prend .
Dominique a raison, ça marche pas sans icône sous XP.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

yep pour l'icone
d'ailleurs qq aurait une icone qui suggère le programme TV à tout hazard ?

je pensais aussi ajouter 2 fonctionnalités :
1/ choix entre plusieurs pages...
2/ actualisation de la page ouverte vers 7h du mat' (avant c encore celle de la veille)

3/ nb: j'ai aussi fais ce prog pourquoi : parceque generalement quand on veut connaitre le programme du soir, ma chérie me le demande toujours vers 20h40 et à cette heure là le site est saturé - trop de gens s'y connectent - alors le but est de charger la page avant en journée - une bonne fois pour toute...

autres pages:
http://www.tvmag.com/accueil.jspx
http://telepoche.guidetele.com/
http://www.cesoirtv.com/fr/programme.htm
http://www.le-programme-tv.com/
http://tv.voila.fr/index.html?current_page=soir
http://television.telerama.fr/programmes.htm
etc...
Image
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Pratique :D
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Salut,
yep pour l'icone
d'ailleurs qq aurait une icone qui suggère le programme TV à tout hazard ?
Si tu veux j'en ai quelques unes, dis moi où te les expédier et tu feras ton choix.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

C vrai que c'est bien pratic ! :-D il ne manque plus que le canal satellite :-).
Non franchemant, util et même très util :-D.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Mise à jour de < CeSoir Version 1.0 Beta >

ont été ajouté :
1/ Gestion de plusieurs pages web
2/ Délai d'actualisation ( fixé à 1 heure par défaut )
3/ Fichier de préférences

http://www.penguinbyte.com/apps/pbwebst ... CeSoir.zip

> jacobus
merci pour les icones - tu peux me les envoyer ici
sur mon email flype@altern.org
Image
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

j'avais oublié de mettre le lien :

43ko - programme + source + icone + fichier config

http://www.penguinbyte.com/apps/pbwebst ... CeSoir.zip[/url]
Image
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Y a quoi ce soir a la télé ??????

De la Pub, du reality show... :mad:

Bon courage et vive les divx
Quand tu veux, ou tu veux, ce que tu veux! :lol:

Et sans pub ! :twisted:
Vive le temps libre !
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

les gouts et les couleurs... on discute pas...
Image
novicenpure
Messages : 34
Inscription : jeu. 20/janv./2005 21:30

Message par novicenpure »

Pratique ! Pour ma part, j'ai été confronté au problème de Flype il y a longtemps :) , et il y a une manière plus simple pour le résoudre: il suffit de créer sur le bureau un raccourci vers la page web.....
je sais, je sais, je suis rabat-joie :oops:
Avec suffisamment de paires d'yeux, tous les bogues feront surface (Linus Torvalds).
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

J'imagine que ce n'est plus d'actualité, mais voilà un flux RSS pour les programmes TV des chaines nationales.

http://medias.krinein.com/programmes.rss
Répondre