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.