voici le squelette d'ecran de veille que j'utilise
avec utilisation d'un boite de dialogue pour le parametrage
si le gars ne rentre pas "dobro" le screen saver fait une action (surimpression par exemple)
juste un flag pour activer ou suprimer une surimpression (pas presente dans le listing !), mais j'ai laisse le flag
au debut en rem tu as l'explication des parametres ici avec une boite de dialogue je n'utilise que "/c" !!
Code : Tout sélectionner
;
; ici les initialisations des variables et tableaux
;"/s" pour le lancer
;"/c:" + un nombre pour le faire Paramétrer
;"/p", espace, et un nombre qd son nom est simplement séletionné dans la boîte des propriétés du bureau
;Sinon, un truc tout con:
;Code:
;OpenConsole()
;p$=ProgramParameter()
;While p$
; PrintN(p$)
; p$=ProgramParameter()
;Wend
;Input()
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#code
#Text_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 293, 129, 249, 109, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "config")
If CreateGadgetList(WindowID())
StringGadget(#code, 40, 50, 170, 30, "", #PB_String_Password)
TextGadget(#Text_0, 10, 20, 90, 20, "ENTREZ le Code")
EndIf
EndIf
EndProcedure
#Police=1
;*********** pour le screensaver
Param.s = Left(ProgramParameter(), 2)
If Param = "/p"
End
EndIf
If Param = "/c" :;l'utilisateur veut paramettrer le screensaver !
Open_Window_0():; jouvre ma fenetre ( cree a partir de visual designer)
Repeat
Texte$ = GetGadgetText(#code):;je recupere le contenu de ma boite de config
If Texte$="dobro":;si le gars tappe le code "dobro"
dobro=1:; c'est bon on affiche pas la surimpression
code$="ok":;on se prepare a ecrire le mot "ok" dans un fichier
Resultat = OpenFile(1, "matrix.ini") :;on cree le fichier
WriteStringN(code$) :; on ecrit dedans "ok"
CloseFile(1)
Else
dobro=0:; la le mec a pas rentré le bon code
EndIf
Until WindowEvent() = #PB_Event_CloseWindow :; le gars a fermé la boite de config
EndIf
GetCursorPos_(SourisOrigine.POINT)
ShowCursor_(0)
; ***********************************
Resultat = InitSprite()
FontID = LoadFont(#Police, "arial", 18, #PB_Font_Bold )
EcranX = GetSystemMetrics_(#SM_CXSCREEN)
EcranY = GetSystemMetrics_(#SM_CYSCREEN)
If ReadFile(1, "matrix.ini"):;en temps normal on commence par regarder si le screen saver est enregistré
code$ = ReadString() :; on lit le contenu de "matrix.ini"
CloseFile(1)
EndIf
If code$="ok":; bon le gars est enregistré
dobro=1:; ce flag va retirer la surimpression
Else
dobro=0:; il n'est pas enregistrer donc on affiche la surimpression
EndIf
;************ c'est tout pour le parametrage du screen saver
GetCursorPos_(SourisOrigine.POINT)
ShowCursor_(0)
; ***********************************
Resultat = InitSprite()
Resultat = InitSprite3D()
FontID = LoadFont(#Police, "system", 18, #PB_Font_Bold )
EcranX = GetSystemMetrics_(#SM_CXSCREEN)
EcranY = GetSystemMetrics_(#SM_CYSCREEN)
;NbSprite = EcranX / 40 * 3
NbSprite =12
OpenWindow(1, 0, 0, EcranX, EcranY, #PB_Window_BorderLess | #PB_Window_Invisible, "Dos 3.10")
SetWindowPos_(WindowID(), -1, 0, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE) ; fenêtre toujours au premier plan
OpenWindowedScreen(WindowID(), 0, 0, EcranX, EcranY, 1, 0, 0)
; faire ici les initialisations du pre affichage
Repeat :;boucle principale
FlipBuffers():;affichage
ClearScreen(0,0,0):; eface l'ecran pour image suivante
GetCursorPos_(Souris.POINT):; test le curseur de la souris
Until WindowEvent() = #PB_Event_CloseWindow Or Souris\x <> SourisOrigine\x Or Souris\y <> SourisOrigine\y
ShowCursor_(1)
