Page 1 sur 2

Ya quoi ce soir ?

Publié : sam. 26/févr./2005 20:24
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.

Publié : sam. 26/févr./2005 20:51
par nico
C'est pas con mais faut que je recherche une page avec le cable.

Publié : sam. 26/févr./2005 21:04
par Flype
ouep mais tu verras c pas facile ou alors y'en a bien, avec pleins de pub pouarkkk.

Cool !

Publié : dim. 27/févr./2005 2:04
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

Publié : dim. 27/févr./2005 7:20
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.

Publié : dim. 27/févr./2005 9:41
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...

Publié : dim. 27/févr./2005 11:54
par Oliv
Pratique :D

Publié : dim. 27/févr./2005 17:31
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.

Publié : dim. 27/févr./2005 19:04
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.

Publié : dim. 27/févr./2005 20:22
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

Publié : dim. 27/févr./2005 21:19
par Flype
j'avais oublié de mettre le lien :

43ko - programme + source + icone + fichier config

http://www.penguinbyte.com/apps/pbwebst ... CeSoir.zip[/url]

Publié : lun. 28/févr./2005 18:36
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:

Publié : lun. 28/févr./2005 18:51
par Flype
les gouts et les couleurs... on discute pas...

Publié : mar. 28/juin/2005 17:27
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:

Publié : ven. 14/oct./2005 7:26
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