1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| PROCEDURE test_licence()
saisieok est un booléen
num_lic est une chaîne= INILit("CONNECTION","LICENCE","",SysRep()+"\LPERFECT.INI")
SI SansEspace(num_lic) = "" ALORS
SI PAS Ouvre(flicence) ALORS
Erreur("Ce programme va s'arrêter car vous ne disposez pas de numéro de licence pour cette machine."+RC+RC+"Si vous avez perdu votre numéro de licence ou changer de machine, veuillez nous recontacter en précisant le numéro d'identification de votre machine.")
FinProgramme()
FIN
FIN
SI SansEspace(Milieu(codetxt(NumériqueVersChaine(numserial("c:")),p_cle2),1,2)+"-"+Milieu(codetxt(NumériqueVersChaine(numserial("c:")),p_cle),2,5)+"-"+Milieu(codetxt(NumériqueVersChaine(numserial("c:")),p_cle2),6)) <> SansEspace(num_lic) ALORS
SI PAS Ouvre("flicence") ALORS
Erreur("Ce programme va s'arrêter car vous ne disposez pas de numéro de licence valide pour cette machine."+RC+RC+"Si vous avez perdu votre numéro de licence ou changé de machine, veuillez contacter SOCIETE X en précisant le numéro d'identification de votre machine.")
FinProgramme()
FIN
FIN
FONCTION codetxt(Texte, Cle)
TexteCode est une chaîne=""
LettreCode est un caractère
TailleTexte, TailleCle sont des entiers=0
IndiceLettreCle est un entier
ValLettreCode est un entier
//p indice est un entier
TailleTexte=Taille(Texte)
TailleCle=Taille(Cle)
SI (TailleTexte<>0) ET (TailleCle<>0) ALORS
//Au moins un caractère à codé avec une clé d'au moins un caractère
POUR indice=1 A TailleTexte
//Calcul de l'indice de la lettre de la clé à utiliser
IndiceLettreCle=modulo(indice, TailleCle)
SI IndiceLettreCle=0 ALORS
IndiceLettreCle=TailleCle
FIN
//Calcul de la valeur ASCII de la lettre codée
ValLettreCode=modulo(Asc(Texte[[indice]])+Asc(Cle[[IndiceLettreCle]]),256)
//Ajout de la lettre codée dans le texte codé
LettreCode=Caract(ValLettreCode)
TexteCode=TexteCode+LettreCode
FIN
FIN
//SINON Texte ou clé inéxistant
RENVOYER TexteCode
PROCEDURE numserial(sDrive)
LOCAL
iTestOk est un entier
sVolumeName est une chaîne ASCIIZ sur 100
iVolumeSerial est un entier
iMaxComponentLength est un entier
iFileSystemFlags est un entier
sFileNameBuffer est une chaîne ASCIIZ sur 10
Drive est un entier
Drive=fCurrentDrive(sDrive)
iTestOk= CallDLL32("Kernel32","GetVolumeInformationA",...
Drive,...
&sVolumeName,...
100,...
&iVolumeSerial,...
&iMaxComponentLength,...
&iFileSystemFlags,...
&sFileNameBuffer,10)
SI iTestOk=1 ALORS
RENVOYER iVolumeSerial
SINON
RENVOYER 0
FIN
tu cree ensuite une fenetre flicence avec deux champ
un ou le numeros la cle que l'utilisateur devra te commun,iquer s'affichera et un autre ou il devra saisir la licenceque tu va générer
tu devra avoir egalement un bouton valider et fermer
code bouton valider
SI SansEspace(Milieu(codetxt(NumériqueVersChaine(numserial("c:")),p_cle2),1,2)+"-"+Milieu(codetxt(NumériqueVersChaine(numserial("c:")),p_cle),2,5)+"-"+Milieu(codetxt(NumériqueVersChaine(numserial("c:")),p_cle2),6)) <> SansEspace(NUM_LIC) ALORS
Erreur("Le numéro de licence saisi est incorrect.")
RepriseSaisie("num_lic")
SINON
Info("Merci d'avoir choisi .........")
création_ini est un booléen= INIEcrit("CONNECTION", "LICENCE",NUM_LIC,SysRep()+"\LPERFECT.INI")
Ferme(flicence,Vrai)
FIN |
Partager