Insérer un mode Evaluation dans vos softs

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Insérer un mode Evaluation dans vos softs

Message par Jacobus »

Code : Tout sélectionner

; Mode Evaluation 30 jours d'un programme
; Jacobus 22/11/2008 pour PB 4.20
Enumeration
#win
#Text
#Btn
EndEnumeration
#MonProgramme = "Mon Super Soft"
Global Endday$, date$
date$ = FormatDate("%dd/%mm/%yyyy", Date()) ;date du jour
Endday$ = "30/11/2008"                      ;date limite à modifier pour tester 
;Endday$ = "13/11/2008"
;Il vous reste à gérer l'intégration dans l'appli, soit dans l'exe soit dans le registre ou autre...
Procedure Evaluation(Year.l,Month.l)  
 If date$ = Endday$
	 MessageRequester("Période d'essai", "Dernier jour d'utilisation!", #MB_ICONEXCLAMATION)
	 Test = #True
 Else  
	For d = 1 To 1000 ;sur environ 3 ans
	 Jourplus$ = FormatDate("%dd/%mm/%yyyy", AddDate(ParseDate("%dd/%mm/%yyyy", Endday$),  #PB_Date_Day, d))
	 If date$ = Jourplus$
	  MessageRequester("Période d'essai", "Impossible de démarrer "+#MonProgramme+Chr(13)+"l'évaluation est terminée depuis "+Str(d)+" jour(s)", #MB_ICONERROR)
	  End ; à décommenter (commenté pour les tests)
	  Test = #True
		 Break
	 EndIf 
	Next 	
 EndIf
 If Test = #False
	 j$ = FormatDate("%dd", Date()) 
	 For ud = 1 To 31      
	  Result = Day(Date(Year, Month, Val(j$), 0, 0, 0)) 
	  If Result
	   value.l = 31 - Val(Str(Result)) 
	   MessageRequester("Période d'essai", "Votre version d'évaluation sera encore fonctionnelle durant "+Str(value)+" jour(s)"+Chr(13)+""+Chr(13)+"Merci d'avoir choisi "+#MonProgramme, #MB_ICONINFORMATION)
	   Break 
	  EndIf   
	 Next 
 EndIf  
EndProcedure 
;test
Evaluation(2008,11)
If OpenWindow(#win,0,0, 400, 300,#MonProgramme, #PB_Window_SystemMenu|#PB_Window_ScreenCentered)=0 Or CreateGadgetList(WindowID(#win))=0 
  End
EndIf 
TextGadget(#Text, 20,20,360,100,"Ceci est un test, vous pouvez cliquer sur fermer, merci.",#PB_Text_Center)
ButtonGadget(#Btn,150,200,100,25,"FERMER")
Repeat
 Event = WaitWindowEvent()
   If Event = #PB_Event_Gadget
     Select EventGadget()
       Case #Btn : Quit = 1
     EndSelect 
   EndIf
Until Quit
 Event = #PB_Event_CloseWindow
End 
@+ :wink:
Dernière modification par Jacobus le sam. 22/nov./2008 12:26, modifié 1 fois.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Merci ! tres bon kit !! :)
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Merci, Je viens d'éditer pour fournir un exemple simple d'utilisation... :)
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

C'est pas mal en effet, par contre le Endday$ doit être calculé au 1er lancement et forcément stoquée en fichier ou dans le registre sinon c'est la misère pour proposer son soft en ligne.

----edit-----

Je viens de voir que tu l'avais mis en commentaire... sorry :)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Message par Le psychopathe »

Intéressant mais le seul soucis c'est que c'est très simple à cracker. Enfin n'allons pas retourner dans ce débat :wink:
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Cette routine montre surtout comment calculer et utiliser une période de 30 jours de validité, avec des actions possibles en fonction de chaque date. Quant à la protection du soft en lui même c'est autre chose...
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Répondre