C# 30 Jours À Compter De La Date D'Aujourd'Hui
J'ai besoin de mon application de validité de 30 jours à partir d'aujourd'hui, je stocke la date de la demande de config.Comment vais-je vérifier si l'application a expiré ? Je n'ai pas l'esprit si l'utilisateur a modifié le retour d'horloge et l'application fonctionne (trop stupide, un utilisateur de le faire).
if (appmode == "Trial") {
????
}
Vous devez vous connecter pour publier un commentaire.
DateTime expiryDate = new DateTime(startDate);
n'est pas nécessaireDateTime expiryDate = startDate.AddDays(30);
serait correct, causeexpiryDate.AddDays(30)
va écrire le résultat dans le nirvana.DateTime.AddDays
fait que:DateTime expires
partie entre dans l'imageDateTime.Maintenant.Ajouter(-30)
Vous donne la date de 30 jours à partir de maintenant
Je peux répondre en toute confiance!
Ou peut - être-si vous voulez juste la date, sans un temps qui pourrait être plus approprié:
Une solution possible serait à la première exécution, de créer un fichier contenant la date et le mettre dans l'IsolatedStorage. Pour les exécutions suivantes, vérifiez le contenu du fichier et de les comparer avec la date actuelle; si la date de la différence est supérieure à 30 jours, en informer l'utilisateur et de fermer l'application.
Une meilleure solution pourrait être la mise en place d'un fichier de licence avec un compteur. Ecrire dans le fichier de licence, la date d'installation de l'application (en cours d'installation). Ensuite, à chaque fois que l'application est exécutée, vous pouvez modifier le fichier de licence et incrémenter le compteur de 1. Chaque fois que l'application démarre que tu viens de faire un test rapide pour voir si le 30 utilisations de l'application a été atteint, c'est à dire
Aussi cela va résoudre le problème si l'utilisateur a mis le système de secours de l'horloge que vous pouvez faire une vérification simple de dire
Le problème avec votre configuration actuelle est l'utilisateur devra utiliser l'application chaque jour, pendant 30 jours pour obtenir leur pleine d'essai de 30 jours.
J'ai vu ce code dans une partie de certains sites internet. Faire l'exemple ci-dessus expose un problème: la Modification de l'Heure et de la Date de début date de prolonger l'application de l'expiration.
La solution? Consulter en ligne un serveur de temps.
@Ed courtenay, @James,
J'ai une question stupide.
Comment garder de l'utilisateur à l'écart de ce fichier?(Fichier contenant la date d'expiration).
Si l'utilisateur a les droits d'installation, puis évidemment, l'utilisateur a accès à des fichiers de vue également.
La modification de l'extension de fichier wont vous aider.
Donc, comment faire pour conserver ce fichier en sécurité, loin des utilisateurs mains?
Vous avez besoin pour stocker le premier moment de l'exécution du programme en vue de le faire. Comment je le ferais probablement, il est en utilisant le haut dans les paramètres de l'application dans visual studio. Créer un appelé InstallDate qui est un Paramètre de l'Utilisateur et les valeurs par défaut de type DateTime.MinValue ou quelque chose comme ça (par exemple 1/1/1900).
Puis lorsque le programme est exécuté de la vérification est simple:
Les paramètres de l'utilisateur sont stockées dans un drôle d'endroit (quelque chose comme C:\Documents and Settings\Votrenom\Local Settings\Application Data) de sorte qu'il sera très difficile pour la moyenne joe pour trouver de toute façon. Si vous voulez être paranoïaque, juste chiffrer la date avant de les enregistrer dans les paramètres.
EDIT: Soupir, mal lu la question, pas aussi complexe que je pensais >.>
Un peu en retard pour cette question, mais j'ai créé une classe avec tous la pratique des méthodes nécessaires pour créer une application totalement fonctionnelle, un essai de temps en C#. Plutôt que de votre application de config, j'écris l'heure d'expiration de l'Application Windows chemin d'accès aux Données, et sera également rester persistant même après que le programme est fermé (il est aussi difficile de trouver le chemin d'accès pour l'utilisateur moyen).
Entièrement documenté et simple à utiliser, j'espère que quelqu'un le trouve utile!
Voici un exemple typique d'utilisation de la classe ci-dessus. Ne pouvait pas être plus simple!