Créer une version d'essai d'un Programme

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 132
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Créer une version d'essai d'un Programme

#1

Message par Numeric »

Salut,
je voudrai créer une version d'essai de 15 jours pour un de mes programmes...
Franchement j'ai vraiment pas beaucoup de notion la dessus..
Mais néanmoins... :mrgreen:

Code : Tout sélectionner

#include <Date.au3>
#include <String.au3>
VersionEssai()
Func VersionEssai($iDuree = 15)
	Local $FichierStackage = @ScriptDir & '\versionEssai.ini'
	Local $FichierControle = @ScriptDir & '\Control.ini' ;Pour verification et accomplissement de toutes les conditions
	;Variables
	Local $sStart_Time, $iDays, $StartCondition, $OpenReadMode, $OpenWriteMode, $endUse, $SayInfo = 0, $FirstWrite, $endUse, $WriteEndDate, $Condition1, $Condition2

	If Not FileExists($FichierStackage) Then ;Condition de base pour le calcul du temps (En vrai je choisirai le régistre)
		If Not FileExists($FichierControle) Then
			;RegRead("keyname,"valueName)
			;IF @error then ;===> suite de condition

			;Mais en exemple pour chercher à comprendre :::
			$FirstWrite = FileWrite($FichierStackage, '') ;Valeur vide
			If $FirstWrite = 0 Then Exit; tant qu'on ne peut pas créer la condition de base, on quitte le programme

			$sStart_Time = _NowDate() ;Date de création de la condition, donc date de la prémière utilisation

			$StartCondition = IniWrite($FichierStackage, 'essai', 'essai', $sStart_Time) ;Stockage de la date: 1ère utilisation
			If $StartCondition = 0 Then Exit
			$endUse = _DateAdd('d', 15, _NowCalcDate()) ;Delai d'essai
			If Not FileWrite($FichierControle, '') Then Exit
			$WriteEndDate = IniWrite($FichierControle, 'version', 'version', $endUse)
			If $WriteEndDate = 0 Then Exit

		EndIf
	EndIf ; Pas de condition sécondaire: (Sinon)

	Switch @MDAY
		Case IniRead($FichierControle, 'version', 'version', Default)
			If Not $SayInfo = 9 Then
				MsgBox(16, 'Erreur', 'version d''éssai expirée', 2)
			EndIf
			$SayInfo = ClipPut(9)
			Exit
		Case Else
			;Je vois vraiment pas ////////
	EndSwitch
EndFunc   ;==>VersionEssai











De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Créer une version d'essai d'un Programme

#2

Message par mikell »

_DateDiff()
Mais c'est dur à protéger ce genre de limitation, sauf peut-être si toute la vérification (date de début + date actuelle) se fait en ligne, et encore...
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 132
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: Créer une version d'essai d'un Programme

#3

Message par Numeric »

Salut :wink:

Alors pour la version d'essai , j'ai un peu codé :shock:

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------

	AutoIt Version : 3.3.14.3
	Auteur:         Numeric

	Fonction du Script : Version d'éssai d'un Programme
	Modèle de Script AutoIt.

#ce ----------------------------------------------------------------------------
#include <Date.au3>
#include <File.au3>

VesrionEssai(15, True)

Func VesrionEssai($useTime = 15, $IniType = True)

	;variables Locales
	Local $Fichier_Stockage_Debut = '', $Fichier_Stockage_Fin = '', $Write_Debut, $Write_Fin
	If $useTime = '' Or $useTime = 0 Then Exit

	If $IniType = '' Then Return SetError(1, 0, -1)

	Switch $IniType
		Case True
			$Fichier_Stockage_Debut = @ScriptDir & '\FichierVinf.txt'
			$Fichier_Stockage_Fin = @ScriptDir & '\FicheStocke.txt'
			If Not FileExists($Fichier_Stockage_Debut) Then
				If Not FileExists($Fichier_Stockage_Fin) Then
					Local $Time_Debut = _NowCalcDate()
					$Write_Debut = FileWrite($Fichier_Stockage_Debut, _DateTimeFormat($Time_Debut, 2))
					If $Write_Debut = 0 Then
						MessageErreur('Le Programme à rencontré une erreur', 2)
						Exit
					EndIf

					;Duree du temps d'essai
					Local $Time_Fin
					$Time_Fin = _DateAdd('d', $useTime, _NowCalcDate())
					$Write_Fin = FileWrite($Fichier_Stockage_Fin, _DateTimeFormat($Time_Fin, 2))
					If $Write_Fin = 0 Then
						MessageErreur('Le Programme à Rencontré une erreur')
						Exit
					EndIf
				EndIf
			EndIf
			EssaiType1($useTime)

		Case False
			If Not FileExists($Fichier_Stockage_Debut) Then
				If Not FileExists($Fichier_Stockage_Fin) Then
					Local $Time_Debut = _NowCalcDate()
					$Write_Debut = RegWrite('HKCU\Software\ETrial', 'TrialMode', 'REG_SZ', _DateTimeFormat($Time_Debut, 2))
					If $Write_Debut <> 1 Then
						MessageErreur('Le Programme à rencontré une erreur', 2)
						Exit
					EndIf

					;Duree du temps d'essai
					Local $Time_Fin = _DateAdd('d', $useTime, _NowCalcDate())
					$Write_Fin = RegWrite('HKCU\Software\ETrial', 'EndTrial', 'REG_SZ', _DateTimeFormat($Time_Fin, 2))
					If $Write_Fin <> 1 Then
						MessageErreur('Le Programme à Rencontré une erreur')
						Exit
					EndIf
				EndIf
			EndIf
			EssaiType2() ;========> je vous laisse vous exercer sur ça, c'est les cles de Registre qui sont concernés,
			;Vous devez les chaché aussi, noubliez pas
			;
	EndSwitch
EndFunc   ;==>VesrionEssai


Func EssaiType1($useTime)
	Local $Fichier_Stockage_Debut = @ScriptDir & '\FichierVinf.txt'
	Local $Fichier_Stockage_Fin = @ScriptDir & '\FicheStocke.txt'
	Local $Read_Debut, $Read_Fin, $FileOpen, $FileRead, $Speak

	$FileOpen = FileOpen($Fichier_Stockage_Debut, 0)
	If $FileOpen = -1 Then
		MessageErreur('Le Programme à cessé de fonctionner')
		Exit
	EndIf

	$Read_Debut = FileReadLine($FileOpen)
	FileClose($FileOpen) ;===================================
	$StringBetweenYear = StringRight($Read_Debut, 4) ;L'année est pistée
	$mMois = StringTrimLeft(StringTrimRight($Read_Debut, 5), 3) ;Le mois est recherché
	$mJours = StringLeft($Read_Debut, 2)
	If $StringBetweenYear - 9999 = 0 Then Exit ;L'an 10.000 n'est pas inclu >>les système seront beaucoup plus complexes ;Lol:::!
	If $StringBetweenYear - @YEAR = 0 Then ;Si c'est la même année
		If $mMois - @MON = 0 Then ;si c'est le même mois
			If $mJours - @MDAY > 0 Then ;Si la date de la premiere utilisation est superieur à la date actuelle (jours)
				MessageErreur('Erreur L''horloge du système à rencontré un problème')
				Exit
			EndIf

		ElseIf $mMois - @MON > 0 Then ;Si la date de la premiere utilisation est superieur à la date actuelle (Mois)
			MessageErreur('Erreur L''horloge du système à rencontré un problème')
			Exit
		EndIf

	ElseIf $StringBetweenYear - @YDAY > 0 Then ;Si la date de la premiere utilisation est superieur à la date actuelle (Années)
		MessageErreur('Erreur L''horloge du système à rencontré un problème')
		Exit
	EndIf


	;Fichier De Stockage de date
	$FileOpen_2 = FileOpen($Fichier_Stockage_Fin, 0)
	If $FileOpen_2 = -1 Then
		MessageErreur('Le Programme à cessé de fonctionner')
		Exit
	EndIf

	$Read_Fin = FileReadLine($FileOpen_2)
	FileClose($FileOpen_2) ;===============================
	$StringBetweenYear_Fin = StringRight($Read_Fin, 4)
	$mJours_End = StringLeft($Read_Fin, 2)
	$mMois_End = StringTrimLeft(StringTrimRight($Read_Fin, 5), 3) ;Le mois est recherché
	If $StringBetweenYear_Fin - @YDAY = 0 Then
		If $mMois_End - @MON = 0 Then
			If @MDAY > $mJours Then
				MessageErreur('Essai expiré')
				Exit
			ElseIf @MDAY <= $mJours Then
				If Not $Speak = 5 Then
					MsgBox(64, 'Trial', 'Il vous reste ' & $mJours_End - @MDAY & ' jour(s) d''éssai', 3)
					$Speak = ClipPut(5) ;Sinon Dans une boucle!!!! ça peut faire male aux oreilles
				EndIf
			EndIf
		EndIf
	EndIf

	If _DateDiff('d', $Read_Debut, $Read_Fin) > $useTime Then
		If Not $Speak = 5 Then
			MessageErreur('Essai expiré')
			$Speak = ClipPut(5)
		EndIf
	EndIf

	$Resize_END = $StringBetweenYear_Fin & '/' & $mMois_End & '/' & $mJours_End
	$Resize_Start = $StringBetweenYear & '/' & $mMois & '/' & $mJours


	If _DateDiff('Y', _NowCalcDate(), $Resize_END) < 0 Then;And _DateDiff('M',_NowCalcDate(), $Resize_END) >= 0 Then
		MessageErreur('Essai expiré')
		Exit
	EndIf
	$Date_Diff_d = _DateDiff('d', _NowCalcDate(), $Resize_END)
	If $Date_Diff_d > $useTime Then
		MessageErreur('Essai expiré')
		Exit
	EndIf


	If _DateDiff('M', _NowCalcDate(), $Resize_END) < 0 Then ;REMMMM cela depend de la durée de la période d'essai
		MessageErreur('Essai expiré')
		Exit
	EndIf

	If _DateDiff('d', _NowCalcDate(), $Resize_END) < 0 Then
		MessageErreur('Essai expiré')
		Exit
	EndIf

	;VERIFICATION =====>Jour deja ecoulé
	Local $FichierLog = @ScriptDir & '\FichierLog.txt'
	Local $Nowww = _NowCalcDate()
	If Not FileExists($FichierLog) Then
		$bb = FileWrite($FichierLog, $Nowww)
	EndIf
	$oOpenLog = FileOpen($FichierLog, 0)
	$Read_Log = FileReadLine($oOpenLog)
	$Read_LogA = StringLeft($Read_Log, 2) ;Jour
	$Log_Y = StringRight($Read_Log, 4) ;L'année est pistée
	$mMois_Y = StringTrimLeft(StringTrimRight($Read_Log, 5), 3) ;Le mois est recherché
	$mJours_Y = StringLeft($Read_Log, 2)

	If _DateDiff('d', $Read_Log, $Nowww) > 0 Then
		$oOpenLog2 = FileOpen($FichierLog, 1)
		$bb = FileWrite($oOpenLog2, $Nowww)
		FileClose($oOpenLog2)
	EndIf
	FileClose($oOpenLog)

	If _DateDiff('d', $Read_Log, $Nowww) < 0 Then
		MessageErreur('Erreur L''horloge du système à rencontré un problème')
		Exit
	EndIf

	If Not $Speak = 10 Then
		MsgBox(64, 'Trial', 'Il vous reste ' & _DateDiff('d', _NowCalcDate(), $Resize_END) & ' jour(s) d''éssai')
		$Speak = ClipPut(10)
	EndIf
EndFunc   ;==>EssaiType1

Func EssaiType2()
	;EXERCICES
EndFunc   ;==>EssaiType2

Func MessageErreur($iMssage, $MsgTime = 2)
	MsgBox(16, 'Erreur', $iMssage, $MsgTime)
EndFunc   ;==>MessageErreur

De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Créer une version d'essai d'un Programme

#4

Message par orax »

Il y a le script XProTec.au3 qui pourrait peut-être te convenir ou t'inspirer.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 132
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: Créer une version d'essai d'un Programme  

#5

Message par Numeric »

Ok merci orax,
Apres mes Exams ,Je vais l'étudier voir ce que ça va donner......
çA me permettrai peut être d'ameliorer ça http://www.autoitscript.fr/forum/viewto ... 21&t=14098 :)
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Répondre