Page 1 sur 1

Mon réveil ne marche pas !

Publié : jeu. 03/févr./2005 18:23
par gansta93
Bonjour,

Dans ce code, pourquoi il ignore les initsound() et initmovie() ? si vous pouviez m'éclairer svp.

Code : Tout sélectionner

If InitMovie() = 0 Or InitSound() = 0
  MessageRequester("Erreur", "Le son et ou la vidéo n'ont pus être initialisés.", #MB_OK | #mb_iconstop)
  End
EndIf

GinaRunning.s = "I am Gina"

#crlf = Chr(13) + Chr(10)
Structure alarme
  hr.S
  ThreadID.l
EndStructure
NewList Reveils.alarme()
NewList msg.s()
Repeat
  Read temp$
  If temp$ = "EndMSG"
    Break
  EndIf
  AddElement(msg())
  msg() = temp$
ForEver
ResetList(msg())
Global ID

Procedure playmp3(play$)
  
  If LoadMovie(1, play$)
    UseMovie(1)
    PlayMovie(1, 0)
  EndIf
  
EndProcedure

Procedure playwav(play$)
  
  UseOGGSoundDecoder()
  If LoadSound(0, play$)
    PlaySound(0, 1)
  EndIf
  
EndProcedure

Procedure GinaLarme(txt)
  
  reveil$ = InputRequester("Gina Larme - Réglage du réveil", "Entrez l'heure où vous souhaitez vous réveiller (HH:MM):", "")
  If reveil$ And ParseDate("%hh:%ii", reveil$) And Len(reveil$) = 5
    son$ = OpenFileRequester("Choisire le son à jouer à " + reveil$, "", "Fichier MP3(*.mp3;*.mp2;*.mpg;*.mpeg)|*.mp3;*.mp2;*.mpg;*.mpeg|Son wav ou OGG(*.wav;*.ogg)|*.wav;*.ogg", 0)
    If son$
      MinimizeMemoryUse()
      Delay((60 - Second(Date())) * 1000)
      If Second(Date()) > 0
        While Second(Date()) : Wend
      EndIf
      AddElement(Reveils())
      Reveils()\hr = reveil$
      Reveils()\ThreadID = ID
      MinimizeMemoryUse()
      Repeat
        If FormatDate("%hh:%ii", Date()) = reveil$
          ext$ = GetExtensionPart(son$)
          If ext$ = "mp3" Or ext$ = "mp2" Or ext$ = "mpg" Or ext$ = "mpeg"
            playmp3(son$)
          ElseIf ext$ = "wav" Or ext$ = "ogg"
            playwav(son$)
          EndIf
          SelectElement(msg(), txt)
          texte$ = msg()
          texte$ = ReplaceString(texte$, "%hr%", reveil$, 1, 1)
          texte$ = ReplaceString(texte$, "%crlf%", #crlf, 1, 1)
          MessageRequester("Gina Larme", Texte$, 0 + 16 * 4)
          ResetList(Reveils())
          ForEach Reveils()
            If reveils()\hr = Reveil$
              DeleteElement(reveils())
            EndIf
          Next
          quit = 1
        EndIf
        Delay(1000)
      Until quit = 1
    EndIf
  EndIf
  
EndProcedure

If OpenWindow(0, 0, 0, 20, 100, #UsualWindow | #PB_Window_Invisible, "Réveil") And AddSysTrayIcon(0, WindowID(0), ExtractExeSmallIcon()) And CreatePopupMenu(0) And AppRunning(GinaRunning) = 0
  SysTrayIconToolTip(0, "Gina Larme")
  MenuItem(0, "&Définir une nouvelle horraire...")
  MenuBar()
  MenuItem(1, "&Quitter le réveil...")
  Repeat
    Select WindowEvent()
      Case #PB_EventMenu
        Select EventMenuID()
          Case 0
            ID = CreateThread(@GinaLarme(), Random(CountList(msg())))
          Case 1
            If MessageRequester("Attention", "Êtes-vous sûr de vouloir fermer le réveil ?" + #lfcr$ + "Ceci désactivera toutes les horraires définies.", #MB_YesNo | #mb_IconExclamation | #MB_DefButton2) = #idyes
              End
            EndIf
        EndSelect
      Case #PB_Event_Systray
        DisplayPopupMenu(0, WindowID(0))
    EndSelect
    Delay(20)
  ForEver
EndIf
End
DataSection
    Data.s "Il est %hr%, c'est l'heure !", "Il est %hr%.%crlf%On se motive !", "Il est tout juste %hr% sur cet ordinateur.", "Allé, il est %hr%.", "EndMSG"
EndDataSection
Deux lib utilisées : AppRunning et la mienne : voici le code pour MinimizeMemoryUse().
Trouvable sur 2dev ;-).

Code : Tout sélectionner

; Auteur : DominiqueB
; PureBasic 3.92


ProcedureDLL MinimizeMemoryUse() ; Réduit la mémoire utiliser par le programme
  hProcess.l = OpenProcess_($1F0FFF, 0, GetCurrentProcessId_()) 
  SetProcessWorkingSetSize_(hProcess, -1, -1) 
  CloseHandle_(hProcess)
EndProcedure
Merci d'avance ;-).

Publié : jeu. 03/févr./2005 21:43
par gansta93
ça marche pour les wav... comprand pas.

Publié : mer. 09/févr./2005 8:14
par brossden
Bonjour Ganta93

Si tu veux que l'on t'aide évite de donner un code qui oblige à aller chercher des librairies à droite ou à gauche ou des constante du type #UsualWindow qui ne sortent de je ne sais où, sinon tu risques de rester sans réponse. J'ai éssayé de m'interesser à ton problème mais désolé trop pénible !
:oops:

Publié : mer. 09/févr./2005 9:10
par gansta93
Les lib sont toutes trouvables sur PureArea, et #UsualWindow est #PB_WindowSizeGadget Minimizegadget maximizegadget et ScreenCentered et SystemMenu.

Publié : sam. 12/févr./2005 20:56
par lionel_om
Au fait ? on peut trouver où la liste de toutes les cst de pure ??

Publié : sam. 12/févr./2005 21:40
par gansta93
cst ?
c quoi ? :?

Publié : sam. 12/févr./2005 21:50
par Le Soldat Inconnu
Constante :)

Publié : sam. 12/févr./2005 21:59
par nico
@lionel_om

You can find this list here: http://www.reelmediaproductions.com/pb

Publié : sam. 12/févr./2005 22:00
par gansta93

Publié : dim. 13/févr./2005 11:02
par lionel_om
@nico : thanks very much. I'll keep this URL close to me
@gangsta : j'ai la même erreur que nico pour l'execution du prog !!!

Publié : dim. 13/févr./2005 14:41
par gansta93
lionel_om a écrit :@nico : thanks very much. I'll keep this URL close to me
@gangsta : j'ai la même erreur que nico pour l'execution du prog !!!
Moi je n'ai pourtant pas d'erreur !