Mon réveil ne marche pas !
Publié : jeu. 03/févr./2005 18:23
Bonjour,
Dans ce code, pourquoi il ignore les initsound() et initmovie() ? si vous pouviez m'éclairer svp.
Deux lib utilisées : AppRunning et la mienne : voici le code pour MinimizeMemoryUse().
Trouvable sur 2dev
.
Merci d'avance
.
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
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
