Je dois mettre en place un nouveau système de gestion de licence sur un logiciel commercial.
Je voudrais savoir comment mettre en place un système de date d'expiration.
Pour l'instant, j'ai une clef de registre qui me donne la date d'expiration.
Dans le code je fais un GetSystemTime et je compare les deux.
LE PROBLEME, c'est que si on change la date windows (dans Paramères/Panneau de config/date et heure), et bien la date système est changée aussi, et donc le logiciel peut tourner même si la date est dépassée depuis longtemps...
Au lieu de faire une comparaison entre la date d'expiration inscrit dans le registre et la date en cours, il faudrait mieu mettre un compteur de jour ou l'utilisateur s'est servit du prog et mettre la variable dans le registre (avec codage).
C'est pas infaillible, c'est sur que si on veut berner le prog il faut changer la date a chaque fois que l'on utilise le prog, contrairement a ta methode ou on ne chage la date qu'une seul fois.
Faut que ton logiciel enregistre aussi date heure dans registres quand il se ferme. Prochaine ouverture faudra comparer:
si Now < derniere fermeture alors tu fermes.
BruNews, ciao...
Mais cela me parait un peu dangereux du fait que l'utilisateur peut avoir besoin (je sais, c'est un peu tiré par les cheveux) de changer sa date système pour tout à fait autre chose, et "oublier" de la remettre à jour (il y a des cas parmi les utilisateurs du soft !!!!!) avant de relancer le soft. Donc plantage...
A la limite, je pourrais mettre un message d'erreur disant de vérifier la date système...
Je privilégierai la solution qui va jusqu'à contrer un effacement du
registre, et qui se dissocie de toute date en conservant une durée
dissimulée dans un bmp près de l' exe -ou un truc dans le genre.