bon c'est sur, je vais l'optimiser mais en attendant ça fonctionne...
je met le programme a disposition pour ceux qui le souhaitent (voir message précédent pour voir à quoi il sert et comment il fonctionne). Je vais tâcher prochainement de l'améliorer visuellement et de réordonner tout ça sur les conseils qui m'ont été donnés.
J'ai enfin pu générer le code, et cet aboutissement est un remerciement à tous ceux qui m'ont aidés depuis son origine (2005) jusqu'à sa "remise en service"
Code : Tout sélectionner
;- Charge les paramètres PROG PRINCIPAL & Writer
;
LoadImage (2,"ecrire.ico")
LoadImage (3,"messager.ico")
LoadImage (4,"loupe.ico")
LoadImage (5,"sortir.ico")
;
OpenFile(0,"param.ini")
If Lof(0) > 0
PositionXX=Val(ReadString(0))
PositionYY=Val(ReadString(0))
Else
PositionXX=0
PositionYY=0
EndIf
CloseFile(0)
;
If ReadFile(0, "Param.prefs")
While Eof(0) = 0
name1$ = ReadString(0)
ligne1$ = ReadString(0)
name2$ = ReadString(0)
ligne2$ = ReadString(0)
name3$ = ReadString(0)
ligne3$ = ReadString(0)
code$ = ReadString(0)
codename$ = ReadString(0)
Wend
CloseFile(0)
lettre1$ = Right(ligne1$, 1) ;(met variables en memoire)
lettre2$ = Right(ligne2$, 1)
lettre3$ = Right(ligne3$, 1)
path1$ = Left(ligne1$, 14)
path2$ = Left(ligne2$, 14)
path3$ = Left(ligne3$, 14)
namel1$ = Mid(ligne1$, 16, 8)
namel2$ = Mid(ligne2$, 16, 8)
namel3$ = Mid(ligne3$, 16, 8)
adresse$ = Left(ligne1$,13)
Resultat = RenameFile(adresse$+code$+"\off.txt", adresse$+code$+"\on.txt") ;(dit au prog que connecté)
If resultat = 0
MessageRequester("Information", "Le programme n'a pas été fermé correctement lors de la dernière session", #MB_ICONERROR) ;(pb lui dire)
EndIf
MessageRequester("Bienvenue", "Bonjour "+codename$+Chr(10)+Chr(10)+"Votre station Msnger est maintenant activée", #MB_ICONINFORMATION) ;(ok lui dire)
Else
MessageRequester("Pb Fichier : Param.prefs", "Le système n'a pas pu être paramétré correctement"+Chr(10)+"Veuillez relancer l'application ou la réinstaller", #MB_ICONERROR) ;(pb charge Param.prefs)
End
EndIf
Lance_Programm:
;
;- creation du timer (voir si existe fichier Texte)
;
Procedure AlertThread(Parameter) ;****************rappel des variables Loader
If ReadFile(0, "Param.prefs") ;***************sinon bug oublie....
While Eof(0) = 0
name1$ = ReadString(0)
ligne1$ = ReadString(0)
name2$ = ReadString(0)
ligne2$ = ReadString(0)
name3$ = ReadString(0)
ligne3$ = ReadString(0)
code$ = ReadString(0)
codename$ = ReadString(0)
Wend
CloseFile(0)
lettre1$ = Right(ligne1$, 1)
lettre2$ = Right(ligne2$, 1)
lettre3$ = Right(ligne3$, 1)
path1$ = Left(ligne1$, 14)
path2$ = Left(ligne2$, 14)
path3$ = Left(ligne3$, 14)
namel1$ = Mid(ligne1$, 16, 8)
namel2$ = Mid(ligne2$, 16, 8)
namel3$ = Mid(ligne3$, 16, 8)
adresse$ = Left(ligne1$,13)
Else
MessageRequester("Msnger Alert", "Des paramètres ont été modifiés..."+Chr(10)+"l'application se terminer!", #MB_ICONERROR)
End
EndIf
courrier$="n"
Repeat
If stop$<>"o"
Resultat = ReadFile (0, adresse$+code$+"\msg"+lettre1$+".txt")
If resultat <> 0
courrier$="o"
nom$=name1$
lettre$=lettre1$
EndIf
resultat = ReadFile (0, adresse$+code$+"\msg"+lettre2$+".txt")
If resultat <> 0
courrier$="o"
nom$=name2$
lettre$=lettre2$
EndIf
resultat = ReadFile (0, adresse$+code$+"\msg"+lettre3$+".txt")
If resultat <> 0
courrier$="o"
nom$=name3$
lettre$=lettre3$
EndIf
If courrier$="o"
MessageRequester("Messenger Info", "Vous avez un message de : "+nom$, 0)
Goto Lance_Loader
stop$="o"
EndIf
EndIf
Delay(10000)
ForEver
EndProcedure
;
;- lance alerte automatique
;
;- debut du programme
;
; Window Constants
;
#Window_0 = 0
; Gadget Constants
;
#Gadget_2 = 1
#Gadget_3 = 2
#Gadget_4 = 3
#Gadget_5 = 4
debut_programme:
monthread = CreateThread(@AlertThread(), 154) ; lance le timing
presents$=""
If OpenWindow(#Window_0, PositionXX, PositionYY, 160, 40, "Msnger MENU",#PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
ButtonImageGadget(#Gadget_2, 0, 0, 40, 40, ImageID(2))
ButtonImageGadget(#Gadget_3, 40, 0, 40, 40, ImageID(3))
ButtonImageGadget(#Gadget_4, 80, 0, 40 , 40, ImageID(4))
ButtonImageGadget(#Gadget_5, 120, 0, 40, 40, ImageID(5))
GadgetToolTip(#Gadget_2,"Envoyer un message")
GadgetToolTip(#Gadget_3,"Voir les correspondants connectés")
GadgetToolTip(#Gadget_4,"A propos...")
GadgetToolTip(#Gadget_5,"Fermer")
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1 : Goto Lance_Writer ; Envoyer
Case 4 : Goto The_end:End; Fermer
Case 2 ; voir connectés
presents$=""
Resultat = ReadFile (0, path1$+"\on.txt")
If resultat <> 0
present1$ ="o"
EndIf
resultat = ReadFile (0, path2$+"\on.txt")
If resultat <> 0
present2$ ="o"
EndIf
resultat = ReadFile (0, path3$+"\on.txt")
If resultat <> 0
present3$ ="o"
EndIf
; If present1$ <> "o" And present2$ <> "o" And present3$ <> "o"
; presents$ = ""
; EndIf
If present1$ ="o"
presents$="- "+name1$
EndIf
If present2$ ="o"
presents$=presents$+Chr(10)+"- "+name2$
EndIf
If present3$ ="o"
presents$=presents$+Chr(10)+"- "+name3$
EndIf
If presents$=""
MessageRequester("Msnger Friends", "Personne n'est connecté!", #MB_ICONINFORMATION)
EndIf
If presents$<>""
MessageRequester("Msnger Friends", "personnes actuellements connectées :"+Chr(10)+presents$+Chr(10)+Chr(10), #MB_ICONINFORMATION)
EndIf
Case 3 ; A propos
MessageRequester("A propos...", "Post Msnger"+Chr(10)+"Utilitaire de Messagerie Instantanée"+Chr(10)+Chr(10)+Chr(10)+"Par David TURQUIN @2005-2012"+Chr(10), #MB_ICONINFORMATION)
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
End
;
;
;- Writer
;
;
Lance_Writer:
;
#TITRE = "Msnger Writer"
#LARGEUR = 315
#HAUTEUR = 200
Procedure Sauver(texte.s,fichier.s)
If CreateFile(0,fichier)
WriteStringN(0,FormatDate("%dd:%mm:%yyyy", Date()) + " / " + FormatDate("%hh:%ii:%ss", Date()))
WriteStringN(0,"")
WriteString(0,texte)
CloseFile(0)
EndIf
EndProcedure
OpenWindow(0, 0, 0, #LARGEUR, #HAUTEUR,#TITRE, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
EditorGadget(0,5,5,#LARGEUR-10,#HAUTEUR-35)
ButtonGadget(1,#LARGEUR-70,#HAUTEUR-25,65,20,"Quitter")
ButtonGadget(2,5,#HAUTEUR-25,75,20, name1$)
ButtonGadget(3,85,#HAUTEUR-25,75,20, name2$)
ButtonGadget(4,165,#HAUTEUR-25,75,20,name3$)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow : Goto The_end ;verif*****************
Case #PB_Event_Gadget
Select EventGadget()
Case 1 : Goto debut_programme
Case 2 : Sauver(GetGadgetText(0),path1$+"\Msg"+code$+".txt")
MessageRequester("Attention", "Votre message a été envoyé...", #MB_ICONINFORMATION)
Goto debut_programme
Case 3 : Sauver(GetGadgetText(0),path2$+"\Msg"+code$+".txt")
MessageRequester("Attention", "Votre message a été envoyé...", #MB_ICONINFORMATION)
Goto debut_programme
Case 4 : Sauver(GetGadgetText(0),path3$+"\Msg"+code$+".txt")
MessageRequester("Attention", "Votre message a été envoyé...", #MB_ICONINFORMATION)
Goto debut_programme
EndSelect
EndSelect
Until Event=#PB_Event_CloseWindow
End
;
;
;
;
Lance_Loader:
Resultat = ReadFile (0, adresse$+code$+"\msg"+lettre1$+".txt") ;***********************
If resultat <> 0 ;remet sinon letrre$
lettre$=lettre1$ ;pas en mémoire
EndIf
resultat = ReadFile (0, adresse$+code$+"\msg"+lettre2$+".txt")
If resultat <> 0
lettre$=lettre2$
EndIf
resultat = ReadFile (0, adresse$+code$+"\msg"+lettre3$+".txt")
If resultat <> 0
lettre$=lettre3$
EndIf ;********************
fichier$=adresse$+code$+"\Msg"+lettre$+".txt"
#TITRE2 = "Msnger Reader"
#LARGEUR2 = 400
#HAUTEUR2 = 300
Procedure.s Lire(fichier.s)
texte.s = ""
If ReadFile(0,fichier)
While Eof(0)=0
texte + ReadString(0) + Chr(13)
Wend
CloseFile(0)
EndIf
ProcedureReturn texte
EndProcedure
OpenWindow(0, 0, 0, #LARGEUR2, #HAUTEUR2, #TITRE2,#PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
EditorGadget(0,5,5,#LARGEUR2-10,#HAUTEUR2-35)
ButtonGadget(1,#LARGEUR2-80,#HAUTEUR2-25,75,20,"Quitter")
ButtonGadget(2,165,#HAUTEUR2-25,75,20,"Répondre")
SetGadgetText(0,Lire(fichier$))
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow : Goto debut_programme
Case #PB_Event_Gadget
Select EventGadget()
Case 1 :
;CloseFile(fichier$) ;****quitter
DeleteFile(fichier$)
Goto debut_programme
Case 2 :
;CloseFile(fichier$) ;*****répondre
DeleteFile(fichier$)
Goto Lance_Writer
End
EndSelect
EndSelect
Until Event=#PB_Event_CloseWindow
End
;
;
;
;
;
The_end:
Resultat = RenameFile(adresse$+code$+"\on.txt", adresse$+code$+"\off.txt") ;(dit au prog qu'on n'est plus connecté)
If resultat = 0
MessageRequester("Msnger Alert", "Pb ferture prog", #MB_ICONERROR) ;(pb lui dire)
EndIf
;;****sauve param PosX et PosY fenetre
OpenFile(0,"param.ini")
WriteStringN(0,Str(WindowX(0)))
WriteStringN(0,Str(WindowY(0)))
CloseFile(0)
End