如何查看用户是否设置了他的时钟?

时间:2009-11-17 08:24:35

标签: windows windows-7 windows-vista windows-xp clock

在我的桌面程序中,我想检查一下,看看用户是否已将时钟设置回来。

为此,我将某些操作系统文件的时间戳与当前计算机日期进行比较。如果计算机认为是当前日期,那么他必须将时钟设置回来。

对于Windows XP,我一直使用以下文件:

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

两个问题:

  1. 这是一个体面的方式吗,还是有更好的东西?

  2. (假设对1的答案是“体面的”)与Windows Vista和Windows 7文件相比会有什么好处?


  3. 结论:Priyank说了一些显而易见的事情:我没有使用任何系统文件,最简单,最简单的方法就是使用程序本身的时间戳。毕竟,它的安装日期正是您希望试用开始的日期。

    事实证明,您的答案以及我对其他相关StackOverflow问题和上述文章的研究使我决定采用更简单的方案。我的试用用户必须获得使用该试用版的密钥。我已将注册日期嵌入到密钥中。我真的不需要检查时钟设置。相反,我可以看到当前时间是否在注册日期和注册日期加上n天之间。

    如果他们想要绕过那个计划,那就让他们吧。我同意那些人无论如何都不会付钱。让你的程序值得人们享受和想要使用,大多数人都会付钱。

5 个答案:

答案 0 :(得分:3)

Windows文件将始终具有较早的日期,最好是使用系统日期检查程序的创建或修改日期。或者,当您的程序退出时,请确保记下时间戳并将其与下次启动程序时进行比较,并且始终存在NTP:http://en.wikipedia.org/wiki/Network_Time_Protocol

答案 1 :(得分:2)

更好的方法恕我直言,将在程序运行第一次时将当前时间戳存储在注册表中,然后在下次运行时将其与当前时间戳进行比较,如果一切正常,则更新时间戳。

答案 2 :(得分:2)

这不是一个直接的答案,只是提供一些意见和参考。我添加评论的时间太长了。

如果目的是为演示/试用创建一个有时间限制的软件,我们需要在实施它的程度和用户“黑客”传递它的趋势之间找到平衡。

我经常告诉别人,如果你的软件吸引黑客,它可能是有用的/好的。没有必要保护一个没人认为有用的软件。

无论如何,除了哲学话题之外,下面是关于这个主题的几个好读物:

关于乔尔论坛的

How to Implement time-limited trial 关于SO的Time limited trial and Windows Certification 关于SO的Need Advice on Implementing a Time-limited Trial

答案 3 :(得分:0)

选项是从Web服务或时间服务器获取日期。这里的问题是,这只有在有互联网连接的情况下才有效,所以这只是一种更安全的补充方法。

答案 4 :(得分:0)

Windows提供用于通知系统时间更改的API。一例如是提供here的sysinfo.ocx activex控件。