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