在我的桌面程序中,我想检查一下用户是否已将时钟调回。
为此,我将某些操作系统文件的时间戳与当前计算机日期进行比较。如果有任何晚于计算机认为的当前日期,那么他一定是把时钟调回来了。
对于 Windows XP,我一直在使用以下文件:
c:\win386.swp
c:\windows\user.dat
and several others.
两个问题:
这是一种体面的方法,还是有更好的方法?
(假设 1 的答案是“体面的”)什么是比较好的 Windows Vista 和 Windows 7 文件?
结论: Priyank 说了一些明显让我难以理解的事情:与其使用任何系统文件,最简单的方法可能是只使用程序本身的时间戳。毕竟,它的安装日期正是您希望试用开始的日期。
事实证明,您的回答以及我对其他相关 StackOverflow 问题和提到的文章的研究使我决定采用一个更简单的方案。我的试用版用户已经获得了使用试用版的密钥。我已将注册日期嵌入到密钥中。我真的不必检查是否将时钟调回。相反,我可以查看当前时间是否在注册日期和注册日期加上 n 天之间。
如果他们想麻烦绕过那个计划,那就让他们吧。我同意那些人无论如何都不会付钱。使您的程序成为人们喜欢和想要使用并且大多数人愿意付费的东西。