Bonjour à tous,
J'ai mis en place la gestion des licences concernant les produits que je gère.
Le principe est le suivant : A la première ouverture de l'application une licence est accordée valable 7 jours (le temps du paramétrage...)
Un fichier fic contient:
- le nombre de licence
- les adresses mac des pc qui se sont connectés à la base tant que le nb de licences max n'est pas atteint : MAC1; MAC2...
Le tout est crypté dans le fichier fic.
A l'ouverture de l'application,
1. Lecture dans un fichier fic (mdp nécessaire pour son ouverture) du nombre de licence
2. Récupération de l'adresse mac du poste client en cours et recherche dans le fichier fic si l'adresse mac est connu
2a. Si elle n'est pas connu et que le nb de licence n'est pas atteint : ajout de l'adresse mac cryptée et ouverture de l'application
2b. Si connu : ouverture de l'application
3. Lorsque j'installe sur un PC portable, j'ai régulièrement des pb de licence : l'adresse mac récupérée du pc change parfois. J'ai donc listé toutes les adresses mac présentes sur le PC avec NetAdresseMAC(i) (je suppose que le wifi ou autre doivent perturber), et quand je tombe sur une déjà enregistrée j'ouvre l'application. Mais ça ne marche toujours pas... L'adresse mac qui est remonté ne correspond à aucune présente sur le PC. (Je précise que je n'ai aucun souci lorsqu'il s'agit d'un pc de bureau.)
Voilà un extrait de mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 // Nb licence HLitRecherche(Param, TypeSousType, ["Licence", "NbLicence"]) SI HTrouve(Param) ALORS Param.Infos = Crypte(SansEspace(CHP_NbLicence), sMDPParametrage, crypteAnsi, encodePCS) HModifie(Param) SINON Param.Type = "Licence" Param.SousType = "NbLicence" Param.Infos = Crypte(SansEspace(CHP_NbLicence), sMDPParametrage, crypteAnsi, encodePCS) HAjoute(Param) FIN // Code de vérification des adresses mac // On liste des adresses MAC (carte réseau) disponibles sur le PC sListe est une chaîne = "" i est un entier = 0 TANTQUE NetAdresseMAC(i) <> "" sListe += ";" + NetAdresseMAC(i) i++ FIN sListe = sListe[[2 A ]] // On vérifie que le pc est autorisé à ouvrir l'application HLitRecherchePremier(Param, Type, "Licence") TANTQUE PAS HEnDehors(Param) SI Param.SousType[[ A 3]] = "MAC" ALORS nNbLicenceExistante++ POUR TOUTE CHAÎNE sL DE sListe SEPAREE PAR ";" SI Décrypte(Param.Infos, sMDPParametrage, crypteAnsi, encodePCS) = sL ALORS bEntre = Vrai SORTIR FIN FIN SI bEntre = Vrai ALORS SORTIR FIN FIN HLitSuivant(Param) FIN // Si le pc n'est pas déjà enregistré, on vérifie que le nb de licence n'est pas atteint, si non on ajoute l'@ mac SI bEntre = Faux ALORS SI nNbLicenceExistante+1 <= nNbLicence ALORS Param.Type = "Licence" Param.SousType = "MAC"+(nNbLicenceExistante+1) Param.Infos = Crypte(NetAdresseMAC(0), sMDPParametrage, crypteAnsi, encodePCS) HAjoute(Param) SINON Ouvre(FEN_Licence, "Vous avez atteint le nombre de licence vendu pour cette application." +RC+ sMsgeContact, 1, Vrai) RETOUR FIN FIN
Je ne vois pas où est le problème.... Si une âme charitable passe pas là...
Merci d'avance pour votre aide.
Partager