Question

Dans mon programme de bureau, je veux vérifier que pour voir si l'utilisateur a défini son horloge de retour.

Pour ce faire, je compare l'horodatage de certains fichiers du système d'exploitation à la date actuelle de l'ordinateur. Si certains sont après ce que l'ordinateur pense est la date actuelle, alors il doit avoir mis son horloge en arrière.

Pour Windows XP, j'utilise ces fichiers comme:

c:\win386.swp
c:\windows\user.dat
and several others.

Deux questions:

  1. Est-ce une manière décente de le faire, ou est-il quelque chose de mieux?

  2. (En supposant que la réponse à 1 est "décent") Quel serait quelques bons fichiers Windows Vista et Windows 7 à comparer avec?


Conclusion: Priyank a dit une chose évidente qui me avait échappé: Plutôt que d'utiliser des fichiers système, la manière la plus simple et la plus simple pourrait être d'utiliser simplement l'horodatage de votre programme lui-même. Après tout, la date à laquelle il a été installé est exactement la date que vous voulez que votre essai de départ.

Il se trouve, vos réponses et mes recherches d'autres questions connexes StackOverflow et articles mentionnés m'a amené à décider d'un système beaucoup plus simple. Mes utilisateurs d'essai ont déjà obtenir une clé d'utiliser le procès. J'ai la date d'enregistrement intégré dans la clé. Je n'ai pas vraiment de vérifier pour le réglage de l'horloge en arrière. Au lieu de cela, je peux juste SEEE si l'heure actuelle se situe entre la date d'enregistrement et la date jours enregistré plus n.

S'ils veulent aller à la peine de se déplacer ce régime, puis les laisser. Je suis d'accord que ces gens ne seraient pas payer de toute façon. Faites votre programme quelque chose d'utile que les gens aiment et veulent utiliser et la plupart payer.

Était-ce utile?

La solution

fichiers Windows seront toujours avoir plus tôt, le mieux est de vérifier la date de création ou modification de votre programme avec la date du système. Ou tout moment votre programme quit assurez-vous de noter l'horodatage et la comparer avec la prochaine fois que vous démarrez votre programme, et il y a toujours NTP: http://en.wikipedia.org/wiki/Network_Time_Protocol

Autres conseils

une meilleure façon de le faire à mon humble avis serait de stocker l'horodatage en cours dans le registre la première fois que votre programme est couru puis comparer avec l'horodatage en cours sur la prochaine course et mettre à jour l'horodatage si tout est OK.

Ce n'est pas une réponse directe, juste d'offrir une opinion et des références. Trop long pour moi d'ajouter comme commentaire.

Si le but est de créer un logiciel limité dans le temps pour une utilisation démo / essai, nous devons trouver un équilibre entre le montant que vous allez sur la mise en œuvre et la tendance des utilisateurs à « pirater » le transmettre.

J'ai dis souvent aux gens, si votre logiciel attire les pirates, il est probablement quelque chose d'utile / bon. Aucun point la protection d'un logiciel qui ne trouve utile.

Quoi qu'il en soit, le discours philosophique de côté, ci-dessous sont un bon couple se lit sur ce sujet:

Comment mettre en œuvre essai limitée dans le temps sur le Forum de Joel < br> temps d'essai limité et Windows Certification sur le SO
besoin de conseils sur la mise en œuvre d'un essai limité dans le temps sur SO

Une option serait d'obtenir la date d'un service Web ou un serveur de temps. Le problème ici est que cela ne fonctionne que s'il y a une connexion Internet, donc ce serait juste une méthode complémentaire pour un plus sûr.

Windows fournit des API pour la notification des changements de temps du système. Un exemple est le contrôle de SYSINFO.OCX activex fourni .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top